
bmi088:     file format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:	f3 0f 1e fa          	endbr64 
    1004:	48 83 ec 08          	sub    $0x8,%rsp
    1008:	48 8b 05 d9 4f 00 00 	mov    0x4fd9(%rip),%rax        # 5fe8 <__gmon_start__>
    100f:	48 85 c0             	test   %rax,%rax
    1012:	74 02                	je     1016 <_init+0x16>
    1014:	ff d0                	callq  *%rax
    1016:	48 83 c4 08          	add    $0x8,%rsp
    101a:	c3                   	retq   

Disassembly of section .plt:

0000000000001020 <.plt>:
    1020:	ff 35 3a 4f 00 00    	pushq  0x4f3a(%rip)        # 5f60 <_GLOBAL_OFFSET_TABLE_+0x8>
    1026:	f2 ff 25 3b 4f 00 00 	bnd jmpq *0x4f3b(%rip)        # 5f68 <_GLOBAL_OFFSET_TABLE_+0x10>
    102d:	0f 1f 00             	nopl   (%rax)
    1030:	f3 0f 1e fa          	endbr64 
    1034:	68 00 00 00 00       	pushq  $0x0
    1039:	f2 e9 e1 ff ff ff    	bnd jmpq 1020 <.plt>
    103f:	90                   	nop
    1040:	f3 0f 1e fa          	endbr64 
    1044:	68 01 00 00 00       	pushq  $0x1
    1049:	f2 e9 d1 ff ff ff    	bnd jmpq 1020 <.plt>
    104f:	90                   	nop
    1050:	f3 0f 1e fa          	endbr64 
    1054:	68 02 00 00 00       	pushq  $0x2
    1059:	f2 e9 c1 ff ff ff    	bnd jmpq 1020 <.plt>
    105f:	90                   	nop
    1060:	f3 0f 1e fa          	endbr64 
    1064:	68 03 00 00 00       	pushq  $0x3
    1069:	f2 e9 b1 ff ff ff    	bnd jmpq 1020 <.plt>
    106f:	90                   	nop
    1070:	f3 0f 1e fa          	endbr64 
    1074:	68 04 00 00 00       	pushq  $0x4
    1079:	f2 e9 a1 ff ff ff    	bnd jmpq 1020 <.plt>
    107f:	90                   	nop
    1080:	f3 0f 1e fa          	endbr64 
    1084:	68 05 00 00 00       	pushq  $0x5
    1089:	f2 e9 91 ff ff ff    	bnd jmpq 1020 <.plt>
    108f:	90                   	nop
    1090:	f3 0f 1e fa          	endbr64 
    1094:	68 06 00 00 00       	pushq  $0x6
    1099:	f2 e9 81 ff ff ff    	bnd jmpq 1020 <.plt>
    109f:	90                   	nop
    10a0:	f3 0f 1e fa          	endbr64 
    10a4:	68 07 00 00 00       	pushq  $0x7
    10a9:	f2 e9 71 ff ff ff    	bnd jmpq 1020 <.plt>
    10af:	90                   	nop
    10b0:	f3 0f 1e fa          	endbr64 
    10b4:	68 08 00 00 00       	pushq  $0x8
    10b9:	f2 e9 61 ff ff ff    	bnd jmpq 1020 <.plt>
    10bf:	90                   	nop
    10c0:	f3 0f 1e fa          	endbr64 
    10c4:	68 09 00 00 00       	pushq  $0x9
    10c9:	f2 e9 51 ff ff ff    	bnd jmpq 1020 <.plt>
    10cf:	90                   	nop
    10d0:	f3 0f 1e fa          	endbr64 
    10d4:	68 0a 00 00 00       	pushq  $0xa
    10d9:	f2 e9 41 ff ff ff    	bnd jmpq 1020 <.plt>
    10df:	90                   	nop
    10e0:	f3 0f 1e fa          	endbr64 
    10e4:	68 0b 00 00 00       	pushq  $0xb
    10e9:	f2 e9 31 ff ff ff    	bnd jmpq 1020 <.plt>
    10ef:	90                   	nop
    10f0:	f3 0f 1e fa          	endbr64 
    10f4:	68 0c 00 00 00       	pushq  $0xc
    10f9:	f2 e9 21 ff ff ff    	bnd jmpq 1020 <.plt>
    10ff:	90                   	nop

Disassembly of section .plt.got:

0000000000001100 <__cxa_finalize@plt>:
    1100:	f3 0f 1e fa          	endbr64 
    1104:	f2 ff 25 ed 4e 00 00 	bnd jmpq *0x4eed(%rip)        # 5ff8 <__cxa_finalize@GLIBC_2.2.5>
    110b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .plt.sec:

0000000000001110 <putchar@plt>:
    1110:	f3 0f 1e fa          	endbr64 
    1114:	f2 ff 25 55 4e 00 00 	bnd jmpq *0x4e55(%rip)        # 5f70 <putchar@GLIBC_2.2.5>
    111b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001120 <puts@plt>:
    1120:	f3 0f 1e fa          	endbr64 
    1124:	f2 ff 25 4d 4e 00 00 	bnd jmpq *0x4e4d(%rip)        # 5f78 <puts@GLIBC_2.2.5>
    112b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001130 <__stack_chk_fail@plt>:
    1130:	f3 0f 1e fa          	endbr64 
    1134:	f2 ff 25 45 4e 00 00 	bnd jmpq *0x4e45(%rip)        # 5f80 <__stack_chk_fail@GLIBC_2.4>
    113b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001140 <printf@plt>:
    1140:	f3 0f 1e fa          	endbr64 
    1144:	f2 ff 25 3d 4e 00 00 	bnd jmpq *0x4e3d(%rip)        # 5f88 <printf@GLIBC_2.2.5>
    114b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001150 <memset@plt>:
    1150:	f3 0f 1e fa          	endbr64 
    1154:	f2 ff 25 35 4e 00 00 	bnd jmpq *0x4e35(%rip)        # 5f90 <memset@GLIBC_2.2.5>
    115b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001160 <ioctl@plt>:
    1160:	f3 0f 1e fa          	endbr64 
    1164:	f2 ff 25 2d 4e 00 00 	bnd jmpq *0x4e2d(%rip)        # 5f98 <ioctl@GLIBC_2.2.5>
    116b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001170 <close@plt>:
    1170:	f3 0f 1e fa          	endbr64 
    1174:	f2 ff 25 25 4e 00 00 	bnd jmpq *0x4e25(%rip)        # 5fa0 <close@GLIBC_2.2.5>
    117b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001180 <strcmp@plt>:
    1180:	f3 0f 1e fa          	endbr64 
    1184:	f2 ff 25 1d 4e 00 00 	bnd jmpq *0x4e1d(%rip)        # 5fa8 <strcmp@GLIBC_2.2.5>
    118b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001190 <open@plt>:
    1190:	f3 0f 1e fa          	endbr64 
    1194:	f2 ff 25 15 4e 00 00 	bnd jmpq *0x4e15(%rip)        # 5fb0 <open@GLIBC_2.2.5>
    119b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011a0 <sprintf@plt>:
    11a0:	f3 0f 1e fa          	endbr64 
    11a4:	f2 ff 25 0d 4e 00 00 	bnd jmpq *0x4e0d(%rip)        # 5fb8 <sprintf@GLIBC_2.2.5>
    11ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011b0 <exit@plt>:
    11b0:	f3 0f 1e fa          	endbr64 
    11b4:	f2 ff 25 05 4e 00 00 	bnd jmpq *0x4e05(%rip)        # 5fc0 <exit@GLIBC_2.2.5>
    11bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011c0 <sleep@plt>:
    11c0:	f3 0f 1e fa          	endbr64 
    11c4:	f2 ff 25 fd 4d 00 00 	bnd jmpq *0x4dfd(%rip)        # 5fc8 <sleep@GLIBC_2.2.5>
    11cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011d0 <usleep@plt>:
    11d0:	f3 0f 1e fa          	endbr64 
    11d4:	f2 ff 25 f5 4d 00 00 	bnd jmpq *0x4df5(%rip)        # 5fd0 <usleep@GLIBC_2.2.5>
    11db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .text:

00000000000011e0 <_start>:
    11e0:	f3 0f 1e fa          	endbr64 
    11e4:	31 ed                	xor    %ebp,%ebp
    11e6:	49 89 d1             	mov    %rdx,%r9
    11e9:	5e                   	pop    %rsi
    11ea:	48 89 e2             	mov    %rsp,%rdx
    11ed:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    11f1:	50                   	push   %rax
    11f2:	54                   	push   %rsp
    11f3:	4c 8d 05 56 1f 00 00 	lea    0x1f56(%rip),%r8        # 3150 <__libc_csu_fini>
    11fa:	48 8d 0d df 1e 00 00 	lea    0x1edf(%rip),%rcx        # 30e0 <__libc_csu_init>
    1201:	48 8d 3d c1 00 00 00 	lea    0xc1(%rip),%rdi        # 12c9 <main>
    1208:	ff 15 d2 4d 00 00    	callq  *0x4dd2(%rip)        # 5fe0 <__libc_start_main@GLIBC_2.2.5>
    120e:	f4                   	hlt    
    120f:	90                   	nop

0000000000001210 <deregister_tm_clones>:
    1210:	48 8d 3d f9 4d 00 00 	lea    0x4df9(%rip),%rdi        # 6010 <__TMC_END__>
    1217:	48 8d 05 f2 4d 00 00 	lea    0x4df2(%rip),%rax        # 6010 <__TMC_END__>
    121e:	48 39 f8             	cmp    %rdi,%rax
    1221:	74 15                	je     1238 <deregister_tm_clones+0x28>
    1223:	48 8b 05 ae 4d 00 00 	mov    0x4dae(%rip),%rax        # 5fd8 <_ITM_deregisterTMCloneTable>
    122a:	48 85 c0             	test   %rax,%rax
    122d:	74 09                	je     1238 <deregister_tm_clones+0x28>
    122f:	ff e0                	jmpq   *%rax
    1231:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1238:	c3                   	retq   
    1239:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001240 <register_tm_clones>:
    1240:	48 8d 3d c9 4d 00 00 	lea    0x4dc9(%rip),%rdi        # 6010 <__TMC_END__>
    1247:	48 8d 35 c2 4d 00 00 	lea    0x4dc2(%rip),%rsi        # 6010 <__TMC_END__>
    124e:	48 29 fe             	sub    %rdi,%rsi
    1251:	48 89 f0             	mov    %rsi,%rax
    1254:	48 c1 ee 3f          	shr    $0x3f,%rsi
    1258:	48 c1 f8 03          	sar    $0x3,%rax
    125c:	48 01 c6             	add    %rax,%rsi
    125f:	48 d1 fe             	sar    %rsi
    1262:	74 14                	je     1278 <register_tm_clones+0x38>
    1264:	48 8b 05 85 4d 00 00 	mov    0x4d85(%rip),%rax        # 5ff0 <_ITM_registerTMCloneTable>
    126b:	48 85 c0             	test   %rax,%rax
    126e:	74 08                	je     1278 <register_tm_clones+0x38>
    1270:	ff e0                	jmpq   *%rax
    1272:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
    1278:	c3                   	retq   
    1279:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001280 <__do_global_dtors_aux>:
    1280:	f3 0f 1e fa          	endbr64 
    1284:	80 3d 85 4d 00 00 00 	cmpb   $0x0,0x4d85(%rip)        # 6010 <__TMC_END__>
    128b:	75 2b                	jne    12b8 <__do_global_dtors_aux+0x38>
    128d:	55                   	push   %rbp
    128e:	48 83 3d 62 4d 00 00 	cmpq   $0x0,0x4d62(%rip)        # 5ff8 <__cxa_finalize@GLIBC_2.2.5>
    1295:	00 
    1296:	48 89 e5             	mov    %rsp,%rbp
    1299:	74 0c                	je     12a7 <__do_global_dtors_aux+0x27>
    129b:	48 8b 3d 66 4d 00 00 	mov    0x4d66(%rip),%rdi        # 6008 <__dso_handle>
    12a2:	e8 59 fe ff ff       	callq  1100 <__cxa_finalize@plt>
    12a7:	e8 64 ff ff ff       	callq  1210 <deregister_tm_clones>
    12ac:	c6 05 5d 4d 00 00 01 	movb   $0x1,0x4d5d(%rip)        # 6010 <__TMC_END__>
    12b3:	5d                   	pop    %rbp
    12b4:	c3                   	retq   
    12b5:	0f 1f 00             	nopl   (%rax)
    12b8:	c3                   	retq   
    12b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000000012c0 <frame_dummy>:
    12c0:	f3 0f 1e fa          	endbr64 
    12c4:	e9 77 ff ff ff       	jmpq   1240 <register_tm_clones>

00000000000012c9 <main>:
    12c9:	f3 0f 1e fa          	endbr64 
    12cd:	55                   	push   %rbp
    12ce:	48 89 e5             	mov    %rsp,%rbp
    12d1:	48 83 ec 10          	sub    $0x10,%rsp
    12d5:	89 7d fc             	mov    %edi,-0x4(%rbp)
    12d8:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)
    12dc:	83 7d fc 02          	cmpl   $0x2,-0x4(%rbp)
    12e0:	74 25                	je     1307 <main+0x3e>
    12e2:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
    12e6:	48 8b 00             	mov    (%rax),%rax
    12e9:	48 89 c6             	mov    %rax,%rsi
    12ec:	48 8d 3d 11 2d 00 00 	lea    0x2d11(%rip),%rdi        # 4004 <_IO_stdin_used+0x4>
    12f3:	b8 00 00 00 00       	mov    $0x0,%eax
    12f8:	e8 43 fe ff ff       	callq  1140 <printf@plt>
    12fd:	bf ff ff ff ff       	mov    $0xffffffff,%edi
    1302:	e8 a9 fe ff ff       	callq  11b0 <exit@plt>
    1307:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
    130b:	48 83 c0 08          	add    $0x8,%rax
    130f:	48 8b 00             	mov    (%rax),%rax
    1312:	48 8d 35 fb 2c 00 00 	lea    0x2cfb(%rip),%rsi        # 4014 <_IO_stdin_used+0x14>
    1319:	48 89 c7             	mov    %rax,%rdi
    131c:	e8 5f fe ff ff       	callq  1180 <strcmp@plt>
    1321:	85 c0                	test   %eax,%eax
    1323:	75 0c                	jne    1331 <main+0x68>
    1325:	b8 00 00 00 00       	mov    $0x0,%eax
    132a:	e8 86 1b 00 00       	callq  2eb5 <xag_user_read_gyroscope>
    132f:	eb 36                	jmp    1367 <main+0x9e>
    1331:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
    1335:	48 83 c0 08          	add    $0x8,%rax
    1339:	48 8b 00             	mov    (%rax),%rax
    133c:	48 8d 35 d6 2c 00 00 	lea    0x2cd6(%rip),%rsi        # 4019 <_IO_stdin_used+0x19>
    1343:	48 89 c7             	mov    %rax,%rdi
    1346:	e8 35 fe ff ff       	callq  1180 <strcmp@plt>
    134b:	85 c0                	test   %eax,%eax
    134d:	75 0c                	jne    135b <main+0x92>
    134f:	b8 00 00 00 00       	mov    $0x0,%eax
    1354:	e8 8e 14 00 00       	callq  27e7 <xag_user_read_accelerometer>
    1359:	eb 0c                	jmp    1367 <main+0x9e>
    135b:	48 8d 3d bc 2c 00 00 	lea    0x2cbc(%rip),%rdi        # 401e <_IO_stdin_used+0x1e>
    1362:	e8 b9 fd ff ff       	callq  1120 <puts@plt>
    1367:	90                   	nop
    1368:	c9                   	leaveq 
    1369:	c3                   	retq   

000000000000136a <icm_spi_open>:
    136a:	f3 0f 1e fa          	endbr64 
    136e:	55                   	push   %rbp
    136f:	48 89 e5             	mov    %rsp,%rbp
    1372:	48 83 ec 10          	sub    $0x10,%rsp
    1376:	c7 45 fc ac 00 00 00 	movl   $0xac,-0x4(%rbp)
    137d:	be 02 00 00 00       	mov    $0x2,%esi
    1382:	48 8d 3d af 2c 00 00 	lea    0x2caf(%rip),%rdi        # 4038 <_IO_stdin_used+0x38>
    1389:	b8 00 00 00 00       	mov    $0x0,%eax
    138e:	e8 fd fd ff ff       	callq  1190 <open@plt>
    1393:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1396:	48 8d 3d aa 2c 00 00 	lea    0x2caa(%rip),%rdi        # 4047 <_IO_stdin_used+0x47>
    139d:	e8 7e fd ff ff       	callq  1120 <puts@plt>
    13a2:	8b 45 fc             	mov    -0x4(%rbp),%eax
    13a5:	c9                   	leaveq 
    13a6:	c3                   	retq   

00000000000013a7 <icm_spi_config>:
    13a7:	f3 0f 1e fa          	endbr64 
    13ab:	55                   	push   %rbp
    13ac:	48 89 e5             	mov    %rsp,%rbp
    13af:	48 83 ec 30          	sub    $0x30,%rsp
    13b3:	89 7d dc             	mov    %edi,-0x24(%rbp)
    13b6:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    13bd:	00 00 
    13bf:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    13c3:	31 c0                	xor    %eax,%eax
    13c5:	c6 45 ee 00          	movb   $0x0,-0x12(%rbp)
    13c9:	c6 45 ef 08          	movb   $0x8,-0x11(%rbp)
    13cd:	c7 45 f0 40 4b 4c 00 	movl   $0x4c4b40,-0x10(%rbp)
    13d4:	c7 45 f4 ac 00 00 00 	movl   $0xac,-0xc(%rbp)
    13db:	8b 45 dc             	mov    -0x24(%rbp),%eax
    13de:	48 8d 55 ee          	lea    -0x12(%rbp),%rdx
    13e2:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    13e7:	89 c7                	mov    %eax,%edi
    13e9:	b8 00 00 00 00       	mov    $0x0,%eax
    13ee:	e8 6d fd ff ff       	callq  1160 <ioctl@plt>
    13f3:	89 45 f4             	mov    %eax,-0xc(%rbp)
    13f6:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    13fa:	75 0c                	jne    1408 <icm_spi_config+0x61>
    13fc:	48 8d 3d 56 2c 00 00 	lea    0x2c56(%rip),%rdi        # 4059 <_IO_stdin_used+0x59>
    1403:	e8 6b 07 00 00       	callq  1b73 <__do_abnormal>
    1408:	8b 45 dc             	mov    -0x24(%rbp),%eax
    140b:	48 8d 55 ee          	lea    -0x12(%rbp),%rdx
    140f:	be 01 6b 01 80       	mov    $0x80016b01,%esi
    1414:	89 c7                	mov    %eax,%edi
    1416:	b8 00 00 00 00       	mov    $0x0,%eax
    141b:	e8 40 fd ff ff       	callq  1160 <ioctl@plt>
    1420:	89 45 f4             	mov    %eax,-0xc(%rbp)
    1423:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    1427:	75 0c                	jne    1435 <icm_spi_config+0x8e>
    1429:	48 8d 3d 35 2c 00 00 	lea    0x2c35(%rip),%rdi        # 4065 <_IO_stdin_used+0x65>
    1430:	e8 3e 07 00 00       	callq  1b73 <__do_abnormal>
    1435:	8b 45 dc             	mov    -0x24(%rbp),%eax
    1438:	48 8d 55 ef          	lea    -0x11(%rbp),%rdx
    143c:	be 03 6b 01 40       	mov    $0x40016b03,%esi
    1441:	89 c7                	mov    %eax,%edi
    1443:	b8 00 00 00 00       	mov    $0x0,%eax
    1448:	e8 13 fd ff ff       	callq  1160 <ioctl@plt>
    144d:	89 45 f4             	mov    %eax,-0xc(%rbp)
    1450:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    1454:	75 0c                	jne    1462 <icm_spi_config+0xbb>
    1456:	48 8d 3d 14 2c 00 00 	lea    0x2c14(%rip),%rdi        # 4071 <_IO_stdin_used+0x71>
    145d:	e8 11 07 00 00       	callq  1b73 <__do_abnormal>
    1462:	8b 45 dc             	mov    -0x24(%rbp),%eax
    1465:	48 8d 55 ef          	lea    -0x11(%rbp),%rdx
    1469:	be 03 6b 01 80       	mov    $0x80016b03,%esi
    146e:	89 c7                	mov    %eax,%edi
    1470:	b8 00 00 00 00       	mov    $0x0,%eax
    1475:	e8 e6 fc ff ff       	callq  1160 <ioctl@plt>
    147a:	89 45 f4             	mov    %eax,-0xc(%rbp)
    147d:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    1481:	75 0c                	jne    148f <icm_spi_config+0xe8>
    1483:	48 8d 3d f4 2b 00 00 	lea    0x2bf4(%rip),%rdi        # 407e <_IO_stdin_used+0x7e>
    148a:	e8 e4 06 00 00       	callq  1b73 <__do_abnormal>
    148f:	8b 45 dc             	mov    -0x24(%rbp),%eax
    1492:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
    1496:	be 04 6b 04 40       	mov    $0x40046b04,%esi
    149b:	89 c7                	mov    %eax,%edi
    149d:	b8 00 00 00 00       	mov    $0x0,%eax
    14a2:	e8 b9 fc ff ff       	callq  1160 <ioctl@plt>
    14a7:	89 45 f4             	mov    %eax,-0xc(%rbp)
    14aa:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    14ae:	75 0c                	jne    14bc <icm_spi_config+0x115>
    14b0:	48 8d 3d d4 2b 00 00 	lea    0x2bd4(%rip),%rdi        # 408b <_IO_stdin_used+0x8b>
    14b7:	e8 b7 06 00 00       	callq  1b73 <__do_abnormal>
    14bc:	8b 45 dc             	mov    -0x24(%rbp),%eax
    14bf:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
    14c3:	be 04 6b 04 80       	mov    $0x80046b04,%esi
    14c8:	89 c7                	mov    %eax,%edi
    14ca:	b8 00 00 00 00       	mov    $0x0,%eax
    14cf:	e8 8c fc ff ff       	callq  1160 <ioctl@plt>
    14d4:	89 45 f4             	mov    %eax,-0xc(%rbp)
    14d7:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%rbp)
    14db:	75 0c                	jne    14e9 <icm_spi_config+0x142>
    14dd:	48 8d 3d b9 2b 00 00 	lea    0x2bb9(%rip),%rdi        # 409d <_IO_stdin_used+0x9d>
    14e4:	e8 8a 06 00 00       	callq  1b73 <__do_abnormal>
    14e9:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    14ed:	0f b6 c0             	movzbl %al,%eax
    14f0:	89 c6                	mov    %eax,%esi
    14f2:	48 8d 3d b6 2b 00 00 	lea    0x2bb6(%rip),%rdi        # 40af <_IO_stdin_used+0xaf>
    14f9:	b8 00 00 00 00       	mov    $0x0,%eax
    14fe:	e8 3d fc ff ff       	callq  1140 <printf@plt>
    1503:	0f b6 45 ef          	movzbl -0x11(%rbp),%eax
    1507:	0f b6 c0             	movzbl %al,%eax
    150a:	89 c6                	mov    %eax,%esi
    150c:	48 8d 3d aa 2b 00 00 	lea    0x2baa(%rip),%rdi        # 40bd <_IO_stdin_used+0xbd>
    1513:	b8 00 00 00 00       	mov    $0x0,%eax
    1518:	e8 23 fc ff ff       	callq  1140 <printf@plt>
    151d:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1520:	89 c0                	mov    %eax,%eax
    1522:	48 69 c0 83 de 1b 43 	imul   $0x431bde83,%rax,%rax
    1529:	48 c1 e8 20          	shr    $0x20,%rax
    152d:	89 c2                	mov    %eax,%edx
    152f:	c1 ea 12             	shr    $0x12,%edx
    1532:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1535:	89 c0                	mov    %eax,%eax
    1537:	48 69 c0 d3 4d 62 10 	imul   $0x10624dd3,%rax,%rax
    153e:	48 c1 e8 20          	shr    $0x20,%rax
    1542:	c1 e8 06             	shr    $0x6,%eax
    1545:	89 c6                	mov    %eax,%esi
    1547:	48 8d 3d 82 2b 00 00 	lea    0x2b82(%rip),%rdi        # 40d0 <_IO_stdin_used+0xd0>
    154e:	b8 00 00 00 00       	mov    $0x0,%eax
    1553:	e8 e8 fb ff ff       	callq  1140 <printf@plt>
    1558:	b8 00 00 00 00       	mov    $0x0,%eax
    155d:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    1561:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    1568:	00 00 
    156a:	74 05                	je     1571 <icm_spi_config+0x1ca>
    156c:	e8 bf fb ff ff       	callq  1130 <__stack_chk_fail@plt>
    1571:	c9                   	leaveq 
    1572:	c3                   	retq   

0000000000001573 <readfrom_spi_serial>:
    1573:	f3 0f 1e fa          	endbr64 
    1577:	55                   	push   %rbp
    1578:	48 89 e5             	mov    %rsp,%rbp
    157b:	48 81 ec 60 01 00 00 	sub    $0x160,%rsp
    1582:	89 bd bc fe ff ff    	mov    %edi,-0x144(%rbp)
    1588:	89 f0                	mov    %esi,%eax
    158a:	48 89 95 b0 fe ff ff 	mov    %rdx,-0x150(%rbp)
    1591:	89 8d ac fe ff ff    	mov    %ecx,-0x154(%rbp)
    1597:	4c 89 85 a0 fe ff ff 	mov    %r8,-0x160(%rbp)
    159e:	66 89 85 b8 fe ff ff 	mov    %ax,-0x148(%rbp)
    15a5:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    15ac:	00 00 
    15ae:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    15b2:	31 c0                	xor    %eax,%eax
    15b4:	48 c7 85 f0 fe ff ff 	movq   $0x0,-0x110(%rbp)
    15bb:	00 00 00 00 
    15bf:	48 c7 85 f8 fe ff ff 	movq   $0x0,-0x108(%rbp)
    15c6:	00 00 00 00 
    15ca:	48 c7 85 00 ff ff ff 	movq   $0x0,-0x100(%rbp)
    15d1:	00 00 00 00 
    15d5:	48 c7 85 08 ff ff ff 	movq   $0x0,-0xf8(%rbp)
    15dc:	00 00 00 00 
    15e0:	48 c7 85 10 ff ff ff 	movq   $0x0,-0xf0(%rbp)
    15e7:	00 00 00 00 
    15eb:	48 c7 85 18 ff ff ff 	movq   $0x0,-0xe8(%rbp)
    15f2:	00 00 00 00 
    15f6:	48 c7 85 20 ff ff ff 	movq   $0x0,-0xe0(%rbp)
    15fd:	00 00 00 00 
    1601:	48 c7 85 28 ff ff ff 	movq   $0x0,-0xd8(%rbp)
    1608:	00 00 00 00 
    160c:	48 c7 85 30 ff ff ff 	movq   $0x0,-0xd0(%rbp)
    1613:	00 00 00 00 
    1617:	48 c7 85 38 ff ff ff 	movq   $0x0,-0xc8(%rbp)
    161e:	00 00 00 00 
    1622:	48 c7 85 40 ff ff ff 	movq   $0x0,-0xc0(%rbp)
    1629:	00 00 00 00 
    162d:	48 c7 85 48 ff ff ff 	movq   $0x0,-0xb8(%rbp)
    1634:	00 00 00 00 
    1638:	48 c7 85 50 ff ff ff 	movq   $0x0,-0xb0(%rbp)
    163f:	00 00 00 00 
    1643:	48 c7 85 58 ff ff ff 	movq   $0x0,-0xa8(%rbp)
    164a:	00 00 00 00 
    164e:	48 c7 85 60 ff ff ff 	movq   $0x0,-0xa0(%rbp)
    1655:	00 00 00 00 
    1659:	48 c7 85 68 ff ff ff 	movq   $0x0,-0x98(%rbp)
    1660:	00 00 00 00 
    1664:	48 c7 85 70 ff ff ff 	movq   $0x0,-0x90(%rbp)
    166b:	00 00 00 00 
    166f:	48 c7 85 78 ff ff ff 	movq   $0x0,-0x88(%rbp)
    1676:	00 00 00 00 
    167a:	48 c7 45 80 00 00 00 	movq   $0x0,-0x80(%rbp)
    1681:	00 
    1682:	48 c7 45 88 00 00 00 	movq   $0x0,-0x78(%rbp)
    1689:	00 
    168a:	48 c7 45 90 00 00 00 	movq   $0x0,-0x70(%rbp)
    1691:	00 
    1692:	48 c7 45 98 00 00 00 	movq   $0x0,-0x68(%rbp)
    1699:	00 
    169a:	48 c7 45 a0 00 00 00 	movq   $0x0,-0x60(%rbp)
    16a1:	00 
    16a2:	48 c7 45 a8 00 00 00 	movq   $0x0,-0x58(%rbp)
    16a9:	00 
    16aa:	48 c7 45 b0 00 00 00 	movq   $0x0,-0x50(%rbp)
    16b1:	00 
    16b2:	48 c7 45 b8 00 00 00 	movq   $0x0,-0x48(%rbp)
    16b9:	00 
    16ba:	48 c7 45 c0 00 00 00 	movq   $0x0,-0x40(%rbp)
    16c1:	00 
    16c2:	48 c7 45 c8 00 00 00 	movq   $0x0,-0x38(%rbp)
    16c9:	00 
    16ca:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
    16d1:	00 
    16d2:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
    16d9:	00 
    16da:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    16e1:	00 
    16e2:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    16e9:	00 
    16ea:	c7 85 cc fe ff ff 00 	movl   $0x0,-0x134(%rbp)
    16f1:	00 00 00 
    16f4:	c7 85 c4 fe ff ff 00 	movl   $0x0,-0x13c(%rbp)
    16fb:	00 00 00 
    16fe:	c7 85 c8 fe ff ff 00 	movl   $0x0,-0x138(%rbp)
    1705:	00 00 00 
    1708:	48 8d 85 d0 fe ff ff 	lea    -0x130(%rbp),%rax
    170f:	ba 20 00 00 00       	mov    $0x20,%edx
    1714:	be 00 00 00 00       	mov    $0x0,%esi
    1719:	48 89 c7             	mov    %rax,%rdi
    171c:	e8 2f fa ff ff       	callq  1150 <memset@plt>
    1721:	48 8d 85 f0 fe ff ff 	lea    -0x110(%rbp),%rax
    1728:	89 c0                	mov    %eax,%eax
    172a:	48 89 85 d0 fe ff ff 	mov    %rax,-0x130(%rbp)
    1731:	48 8d 85 70 ff ff ff 	lea    -0x90(%rbp),%rax
    1738:	89 c0                	mov    %eax,%eax
    173a:	48 89 85 d8 fe ff ff 	mov    %rax,-0x128(%rbp)
    1741:	0f b7 95 b8 fe ff ff 	movzwl -0x148(%rbp),%edx
    1748:	8b 85 ac fe ff ff    	mov    -0x154(%rbp),%eax
    174e:	01 d0                	add    %edx,%eax
    1750:	89 85 e0 fe ff ff    	mov    %eax,-0x120(%rbp)
    1756:	c7 85 e4 fe ff ff 40 	movl   $0x4c4b40,-0x11c(%rbp)
    175d:	4b 4c 00 
    1760:	c6 85 ea fe ff ff 08 	movb   $0x8,-0x116(%rbp)
    1767:	66 c7 85 e8 fe ff ff 	movw   $0x2710,-0x118(%rbp)
    176e:	10 27 
    1770:	c7 85 c8 fe ff ff 00 	movl   $0x0,-0x138(%rbp)
    1777:	00 00 00 
    177a:	eb 2c                	jmp    17a8 <readfrom_spi_serial+0x235>
    177c:	8b 85 c8 fe ff ff    	mov    -0x138(%rbp),%eax
    1782:	48 63 d0             	movslq %eax,%rdx
    1785:	48 8b 85 b0 fe ff ff 	mov    -0x150(%rbp),%rax
    178c:	48 01 d0             	add    %rdx,%rax
    178f:	0f b6 10             	movzbl (%rax),%edx
    1792:	8b 85 c8 fe ff ff    	mov    -0x138(%rbp),%eax
    1798:	48 98                	cltq   
    179a:	88 94 05 f0 fe ff ff 	mov    %dl,-0x110(%rbp,%rax,1)
    17a1:	83 85 c8 fe ff ff 01 	addl   $0x1,-0x138(%rbp)
    17a8:	0f b7 85 b8 fe ff ff 	movzwl -0x148(%rbp),%eax
    17af:	39 85 c8 fe ff ff    	cmp    %eax,-0x138(%rbp)
    17b5:	7c c5                	jl     177c <readfrom_spi_serial+0x209>
    17b7:	c7 85 c4 fe ff ff 00 	movl   $0x0,-0x13c(%rbp)
    17be:	00 00 00 
    17c1:	eb 59                	jmp    181c <readfrom_spi_serial+0x2a9>
    17c3:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    17c9:	48 98                	cltq   
    17cb:	0f b6 84 05 f0 fe ff 	movzbl -0x110(%rbp,%rax,1),%eax
    17d2:	ff 
    17d3:	0f b6 c0             	movzbl %al,%eax
    17d6:	89 c6                	mov    %eax,%esi
    17d8:	48 8d 3d 0d 29 00 00 	lea    0x290d(%rip),%rdi        # 40ec <_IO_stdin_used+0xec>
    17df:	b8 00 00 00 00       	mov    $0x0,%eax
    17e4:	e8 57 f9 ff ff       	callq  1140 <printf@plt>
    17e9:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    17ef:	48 63 d0             	movslq %eax,%rdx
    17f2:	48 8b 85 b0 fe ff ff 	mov    -0x150(%rbp),%rax
    17f9:	48 01 d0             	add    %rdx,%rax
    17fc:	0f b6 00             	movzbl (%rax),%eax
    17ff:	0f b6 c0             	movzbl %al,%eax
    1802:	89 c6                	mov    %eax,%esi
    1804:	48 8d 3d ed 28 00 00 	lea    0x28ed(%rip),%rdi        # 40f8 <_IO_stdin_used+0xf8>
    180b:	b8 00 00 00 00       	mov    $0x0,%eax
    1810:	e8 2b f9 ff ff       	callq  1140 <printf@plt>
    1815:	83 85 c4 fe ff ff 01 	addl   $0x1,-0x13c(%rbp)
    181c:	0f b7 85 b8 fe ff ff 	movzwl -0x148(%rbp),%eax
    1823:	39 85 c4 fe ff ff    	cmp    %eax,-0x13c(%rbp)
    1829:	7c 98                	jl     17c3 <readfrom_spi_serial+0x250>
    182b:	8b 85 bc fe ff ff    	mov    -0x144(%rbp),%eax
    1831:	48 8d 95 d0 fe ff ff 	lea    -0x130(%rbp),%rdx
    1838:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    183d:	89 c7                	mov    %eax,%edi
    183f:	b8 00 00 00 00       	mov    $0x0,%eax
    1844:	e8 17 f9 ff ff       	callq  1160 <ioctl@plt>
    1849:	89 85 cc fe ff ff    	mov    %eax,-0x134(%rbp)
    184f:	83 bd cc fe ff ff 00 	cmpl   $0x0,-0x134(%rbp)
    1856:	7f 11                	jg     1869 <readfrom_spi_serial+0x2f6>
    1858:	48 8d 3d ae 28 00 00 	lea    0x28ae(%rip),%rdi        # 410d <_IO_stdin_used+0x10d>
    185f:	b8 00 00 00 00       	mov    $0x0,%eax
    1864:	e8 d7 f8 ff ff       	callq  1140 <printf@plt>
    1869:	48 8d 3d b4 28 00 00 	lea    0x28b4(%rip),%rdi        # 4124 <_IO_stdin_used+0x124>
    1870:	b8 00 00 00 00       	mov    $0x0,%eax
    1875:	e8 c6 f8 ff ff       	callq  1140 <printf@plt>
    187a:	c7 85 c4 fe ff ff 00 	movl   $0x0,-0x13c(%rbp)
    1881:	00 00 00 
    1884:	eb 2d                	jmp    18b3 <readfrom_spi_serial+0x340>
    1886:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    188c:	48 98                	cltq   
    188e:	0f b6 84 05 70 ff ff 	movzbl -0x90(%rbp,%rax,1),%eax
    1895:	ff 
    1896:	0f b6 c0             	movzbl %al,%eax
    1899:	89 c6                	mov    %eax,%esi
    189b:	48 8d 3d 8c 28 00 00 	lea    0x288c(%rip),%rdi        # 412e <_IO_stdin_used+0x12e>
    18a2:	b8 00 00 00 00       	mov    $0x0,%eax
    18a7:	e8 94 f8 ff ff       	callq  1140 <printf@plt>
    18ac:	83 85 c4 fe ff ff 01 	addl   $0x1,-0x13c(%rbp)
    18b3:	83 bd c4 fe ff ff 0f 	cmpl   $0xf,-0x13c(%rbp)
    18ba:	7e ca                	jle    1886 <readfrom_spi_serial+0x313>
    18bc:	bf 0a 00 00 00       	mov    $0xa,%edi
    18c1:	e8 4a f8 ff ff       	callq  1110 <putchar@plt>
    18c6:	0f b7 85 b8 fe ff ff 	movzwl -0x148(%rbp),%eax
    18cd:	89 85 c4 fe ff ff    	mov    %eax,-0x13c(%rbp)
    18d3:	eb 5d                	jmp    1932 <readfrom_spi_serial+0x3bf>
    18d5:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    18db:	48 98                	cltq   
    18dd:	0f b6 84 05 70 ff ff 	movzbl -0x90(%rbp,%rax,1),%eax
    18e4:	ff 
    18e5:	0f b6 c0             	movzbl %al,%eax
    18e8:	89 c6                	mov    %eax,%esi
    18ea:	48 8d 3d 43 28 00 00 	lea    0x2843(%rip),%rdi        # 4134 <_IO_stdin_used+0x134>
    18f1:	b8 00 00 00 00       	mov    $0x0,%eax
    18f6:	e8 45 f8 ff ff       	callq  1140 <printf@plt>
    18fb:	0f b7 85 b8 fe ff ff 	movzwl -0x148(%rbp),%eax
    1902:	8b 95 c4 fe ff ff    	mov    -0x13c(%rbp),%edx
    1908:	29 c2                	sub    %eax,%edx
    190a:	89 d0                	mov    %edx,%eax
    190c:	48 63 d0             	movslq %eax,%rdx
    190f:	48 8b 85 a0 fe ff ff 	mov    -0x160(%rbp),%rax
    1916:	48 01 c2             	add    %rax,%rdx
    1919:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    191f:	48 98                	cltq   
    1921:	0f b6 84 05 70 ff ff 	movzbl -0x90(%rbp,%rax,1),%eax
    1928:	ff 
    1929:	88 02                	mov    %al,(%rdx)
    192b:	83 85 c4 fe ff ff 01 	addl   $0x1,-0x13c(%rbp)
    1932:	0f b7 95 b8 fe ff ff 	movzwl -0x148(%rbp),%edx
    1939:	8b 85 ac fe ff ff    	mov    -0x154(%rbp),%eax
    193f:	01 c2                	add    %eax,%edx
    1941:	8b 85 c4 fe ff ff    	mov    -0x13c(%rbp),%eax
    1947:	39 c2                	cmp    %eax,%edx
    1949:	77 8a                	ja     18d5 <readfrom_spi_serial+0x362>
    194b:	b8 00 00 00 00       	mov    $0x0,%eax
    1950:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    1954:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    195b:	00 00 
    195d:	74 05                	je     1964 <readfrom_spi_serial+0x3f1>
    195f:	e8 cc f7 ff ff       	callq  1130 <__stack_chk_fail@plt>
    1964:	c9                   	leaveq 
    1965:	c3                   	retq   

0000000000001966 <dwt_readfromdevice>:
    1966:	f3 0f 1e fa          	endbr64 
    196a:	55                   	push   %rbp
    196b:	48 89 e5             	mov    %rsp,%rbp
    196e:	48 83 ec 30          	sub    $0x30,%rsp
    1972:	89 7d ec             	mov    %edi,-0x14(%rbp)
    1975:	89 d0                	mov    %edx,%eax
    1977:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
    197b:	4c 89 45 d0          	mov    %r8,-0x30(%rbp)
    197f:	89 f2                	mov    %esi,%edx
    1981:	88 55 e8             	mov    %dl,-0x18(%rbp)
    1984:	88 45 e4             	mov    %al,-0x1c(%rbp)
    1987:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    198e:	00 00 
    1990:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1994:	31 c0                	xor    %eax,%eax
    1996:	66 c7 45 f5 00 00    	movw   $0x0,-0xb(%rbp)
    199c:	c6 45 f7 00          	movb   $0x0,-0x9(%rbp)
    19a0:	66 c7 45 f2 00 00    	movw   $0x0,-0xe(%rbp)
    19a6:	0f b6 45 e8          	movzbl -0x18(%rbp),%eax
    19aa:	89 c6                	mov    %eax,%esi
    19ac:	48 8d 3d 95 27 00 00 	lea    0x2795(%rip),%rdi        # 4148 <_IO_stdin_used+0x148>
    19b3:	b8 00 00 00 00       	mov    $0x0,%eax
    19b8:	e8 83 f7 ff ff       	callq  1140 <printf@plt>
    19bd:	80 7d e4 00          	cmpb   $0x0,-0x1c(%rbp)
    19c1:	75 1a                	jne    19dd <dwt_readfromdevice+0x77>
    19c3:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    19c7:	8d 50 01             	lea    0x1(%rax),%edx
    19ca:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    19ce:	0f b7 c0             	movzwl %ax,%eax
    19d1:	48 98                	cltq   
    19d3:	0f b6 55 e8          	movzbl -0x18(%rbp),%edx
    19d7:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    19db:	eb 73                	jmp    1a50 <dwt_readfromdevice+0xea>
    19dd:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    19e1:	8d 50 01             	lea    0x1(%rax),%edx
    19e4:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    19e8:	0f b7 c0             	movzwl %ax,%eax
    19eb:	0f b6 55 e8          	movzbl -0x18(%rbp),%edx
    19ef:	83 ca 40             	or     $0x40,%edx
    19f2:	48 98                	cltq   
    19f4:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    19f8:	0f b6 45 e4          	movzbl -0x1c(%rbp),%eax
    19fc:	84 c0                	test   %al,%al
    19fe:	78 1a                	js     1a1a <dwt_readfromdevice+0xb4>
    1a00:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1a04:	8d 50 01             	lea    0x1(%rax),%edx
    1a07:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1a0b:	0f b7 c0             	movzwl %ax,%eax
    1a0e:	48 98                	cltq   
    1a10:	0f b6 55 e4          	movzbl -0x1c(%rbp),%edx
    1a14:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1a18:	eb 36                	jmp    1a50 <dwt_readfromdevice+0xea>
    1a1a:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1a1e:	8d 50 01             	lea    0x1(%rax),%edx
    1a21:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1a25:	0f b7 c0             	movzwl %ax,%eax
    1a28:	0f b6 55 e4          	movzbl -0x1c(%rbp),%edx
    1a2c:	83 ca 80             	or     $0xffffff80,%edx
    1a2f:	48 98                	cltq   
    1a31:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1a35:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1a39:	8d 50 01             	lea    0x1(%rax),%edx
    1a3c:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1a40:	0f b7 c0             	movzwl %ax,%eax
    1a43:	0f b6 55 e4          	movzbl -0x1c(%rbp),%edx
    1a47:	c0 ea 07             	shr    $0x7,%dl
    1a4a:	48 98                	cltq   
    1a4c:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1a50:	0f b6 45 f7          	movzbl -0x9(%rbp),%eax
    1a54:	0f b6 f0             	movzbl %al,%esi
    1a57:	0f b6 45 f6          	movzbl -0xa(%rbp),%eax
    1a5b:	0f b6 c8             	movzbl %al,%ecx
    1a5e:	0f b6 45 f5          	movzbl -0xb(%rbp),%eax
    1a62:	0f b6 d0             	movzbl %al,%edx
    1a65:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1a69:	41 89 f0             	mov    %esi,%r8d
    1a6c:	89 c6                	mov    %eax,%esi
    1a6e:	48 8d 3d fb 26 00 00 	lea    0x26fb(%rip),%rdi        # 4170 <_IO_stdin_used+0x170>
    1a75:	b8 00 00 00 00       	mov    $0x0,%eax
    1a7a:	e8 c1 f6 ff ff       	callq  1140 <printf@plt>
    1a7f:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
    1a83:	89 c7                	mov    %eax,%edi
    1a85:	0f b7 75 f2          	movzwl -0xe(%rbp),%esi
    1a89:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
    1a8d:	48 8d 55 f5          	lea    -0xb(%rbp),%rdx
    1a91:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1a94:	49 89 c8             	mov    %rcx,%r8
    1a97:	89 f9                	mov    %edi,%ecx
    1a99:	89 c7                	mov    %eax,%edi
    1a9b:	e8 d3 fa ff ff       	callq  1573 <readfrom_spi_serial>
    1aa0:	48 8b 7d f8          	mov    -0x8(%rbp),%rdi
    1aa4:	64 48 33 3c 25 28 00 	xor    %fs:0x28,%rdi
    1aab:	00 00 
    1aad:	74 05                	je     1ab4 <dwt_readfromdevice+0x14e>
    1aaf:	e8 7c f6 ff ff       	callq  1130 <__stack_chk_fail@plt>
    1ab4:	c9                   	leaveq 
    1ab5:	c3                   	retq   

0000000000001ab6 <imu_spi_read_bmi088_id>:
    1ab6:	f3 0f 1e fa          	endbr64 
    1aba:	55                   	push   %rbp
    1abb:	48 89 e5             	mov    %rsp,%rbp
    1abe:	48 83 ec 30          	sub    $0x30,%rsp
    1ac2:	89 7d dc             	mov    %edi,-0x24(%rbp)
    1ac5:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1acc:	00 00 
    1ace:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1ad2:	31 c0                	xor    %eax,%eax
    1ad4:	48 c7 45 f0 00 00 00 	movq   $0x0,-0x10(%rbp)
    1adb:	00 
    1adc:	c6 45 ef 01          	movb   $0x1,-0x11(%rbp)
    1ae0:	0f b6 55 ef          	movzbl -0x11(%rbp),%edx
    1ae4:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
    1ae8:	8b 45 dc             	mov    -0x24(%rbp),%eax
    1aeb:	49 89 c8             	mov    %rcx,%r8
    1aee:	48 89 d1             	mov    %rdx,%rcx
    1af1:	ba 00 00 00 00       	mov    $0x0,%edx
    1af6:	be 80 00 00 00       	mov    $0x80,%esi
    1afb:	89 c7                	mov    %eax,%edi
    1afd:	e8 64 fe ff ff       	callq  1966 <dwt_readfromdevice>
    1b02:	c6 45 ee 00          	movb   $0x0,-0x12(%rbp)
    1b06:	eb 2b                	jmp    1b33 <imu_spi_read_bmi088_id+0x7d>
    1b08:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1b0c:	48 98                	cltq   
    1b0e:	0f b6 44 05 f0       	movzbl -0x10(%rbp,%rax,1),%eax
    1b13:	0f b6 c0             	movzbl %al,%eax
    1b16:	89 c6                	mov    %eax,%esi
    1b18:	48 8d 3d 6b 26 00 00 	lea    0x266b(%rip),%rdi        # 418a <_IO_stdin_used+0x18a>
    1b1f:	b8 00 00 00 00       	mov    $0x0,%eax
    1b24:	e8 17 f6 ff ff       	callq  1140 <printf@plt>
    1b29:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1b2d:	83 c0 01             	add    $0x1,%eax
    1b30:	88 45 ee             	mov    %al,-0x12(%rbp)
    1b33:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1b37:	3a 45 ef             	cmp    -0x11(%rbp),%al
    1b3a:	72 cc                	jb     1b08 <imu_spi_read_bmi088_id+0x52>
    1b3c:	90                   	nop
    1b3d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1b41:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1b48:	00 00 
    1b4a:	74 05                	je     1b51 <imu_spi_read_bmi088_id+0x9b>
    1b4c:	e8 df f5 ff ff       	callq  1130 <__stack_chk_fail@plt>
    1b51:	c9                   	leaveq 
    1b52:	c3                   	retq   

0000000000001b53 <icm_spi_close>:
    1b53:	f3 0f 1e fa          	endbr64 
    1b57:	55                   	push   %rbp
    1b58:	48 89 e5             	mov    %rsp,%rbp
    1b5b:	48 83 ec 10          	sub    $0x10,%rsp
    1b5f:	89 7d fc             	mov    %edi,-0x4(%rbp)
    1b62:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1b65:	89 c7                	mov    %eax,%edi
    1b67:	e8 04 f6 ff ff       	callq  1170 <close@plt>
    1b6c:	b8 00 00 00 00       	mov    $0x0,%eax
    1b71:	c9                   	leaveq 
    1b72:	c3                   	retq   

0000000000001b73 <__do_abnormal>:
    1b73:	f3 0f 1e fa          	endbr64 
    1b77:	55                   	push   %rbp
    1b78:	48 89 e5             	mov    %rsp,%rbp
    1b7b:	48 83 ec 10          	sub    $0x10,%rsp
    1b7f:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
    1b83:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1b87:	48 89 c6             	mov    %rax,%rsi
    1b8a:	48 8d 3d 0f 26 00 00 	lea    0x260f(%rip),%rdi        # 41a0 <_IO_stdin_used+0x1a0>
    1b91:	b8 00 00 00 00       	mov    $0x0,%eax
    1b96:	e8 a5 f5 ff ff       	callq  1140 <printf@plt>
    1b9b:	bf 00 00 00 00       	mov    $0x0,%edi
    1ba0:	e8 0b f6 ff ff       	callq  11b0 <exit@plt>

0000000000001ba5 <transfer>:
    1ba5:	f3 0f 1e fa          	endbr64 
    1ba9:	55                   	push   %rbp
    1baa:	48 89 e5             	mov    %rsp,%rbp
    1bad:	48 83 ec 40          	sub    $0x40,%rsp
    1bb1:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1bb8:	00 00 
    1bba:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1bbe:	31 c0                	xor    %eax,%eax
    1bc0:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%rbp)
    1bc7:	66 c7 45 f4 80 00    	movw   $0x80,-0xc(%rbp)
    1bcd:	66 c7 45 f6 00 00    	movw   $0x0,-0xa(%rbp)
    1bd3:	be 02 00 00 00       	mov    $0x2,%esi
    1bd8:	48 8d 3d 59 24 00 00 	lea    0x2459(%rip),%rdi        # 4038 <_IO_stdin_used+0x38>
    1bdf:	b8 00 00 00 00       	mov    $0x0,%eax
    1be4:	e8 a7 f5 ff ff       	callq  1190 <open@plt>
    1be9:	89 45 cc             	mov    %eax,-0x34(%rbp)
    1bec:	83 7d cc 00          	cmpl   $0x0,-0x34(%rbp)
    1bf0:	79 0c                	jns    1bfe <transfer+0x59>
    1bf2:	48 8d 3d cb 25 00 00 	lea    0x25cb(%rip),%rdi        # 41c4 <_IO_stdin_used+0x1c4>
    1bf9:	e8 22 f5 ff ff       	callq  1120 <puts@plt>
    1bfe:	c7 45 c4 03 00 00 00 	movl   $0x3,-0x3c(%rbp)
    1c05:	48 8d 55 c4          	lea    -0x3c(%rbp),%rdx
    1c09:	8b 45 cc             	mov    -0x34(%rbp),%eax
    1c0c:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    1c11:	89 c7                	mov    %eax,%edi
    1c13:	b8 00 00 00 00       	mov    $0x0,%eax
    1c18:	e8 43 f5 ff ff       	callq  1160 <ioctl@plt>
    1c1d:	89 45 c8             	mov    %eax,-0x38(%rbp)
    1c20:	83 7d c8 00          	cmpl   $0x0,-0x38(%rbp)
    1c24:	74 11                	je     1c37 <transfer+0x92>
    1c26:	48 8d 3d b0 25 00 00 	lea    0x25b0(%rip),%rdi        # 41dd <_IO_stdin_used+0x1dd>
    1c2d:	e8 ee f4 ff ff       	callq  1120 <puts@plt>
    1c32:	e9 f6 00 00 00       	jmpq   1d2d <transfer+0x188>
    1c37:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    1c3b:	ba 20 00 00 00       	mov    $0x20,%edx
    1c40:	be 00 00 00 00       	mov    $0x0,%esi
    1c45:	48 89 c7             	mov    %rax,%rdi
    1c48:	e8 03 f5 ff ff       	callq  1150 <memset@plt>
    1c4d:	48 8d 45 f4          	lea    -0xc(%rbp),%rax
    1c51:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
    1c55:	48 8d 45 f6          	lea    -0xa(%rbp),%rax
    1c59:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
    1c5d:	c7 45 e0 02 00 00 00 	movl   $0x2,-0x20(%rbp)
    1c64:	c7 45 e4 40 4b 4c 00 	movl   $0x4c4b40,-0x1c(%rbp)
    1c6b:	c6 45 ea 08          	movb   $0x8,-0x16(%rbp)
    1c6f:	66 c7 45 e8 e8 03    	movw   $0x3e8,-0x18(%rbp)
    1c75:	c6 45 eb 01          	movb   $0x1,-0x15(%rbp)
    1c79:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    1c7d:	8b 45 cc             	mov    -0x34(%rbp),%eax
    1c80:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    1c85:	89 c7                	mov    %eax,%edi
    1c87:	b8 00 00 00 00       	mov    $0x0,%eax
    1c8c:	e8 cf f4 ff ff       	callq  1160 <ioctl@plt>
    1c91:	89 45 c8             	mov    %eax,-0x38(%rbp)
    1c94:	83 7d c8 00          	cmpl   $0x0,-0x38(%rbp)
    1c98:	7f 11                	jg     1cab <transfer+0x106>
    1c9a:	48 8d 3d 6c 24 00 00 	lea    0x246c(%rip),%rdi        # 410d <_IO_stdin_used+0x10d>
    1ca1:	b8 00 00 00 00       	mov    $0x0,%eax
    1ca6:	e8 95 f4 ff ff       	callq  1140 <printf@plt>
    1cab:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%rbp)
    1cb2:	eb 5b                	jmp    1d0f <transfer+0x16a>
    1cb4:	8b 4d c8             	mov    -0x38(%rbp),%ecx
    1cb7:	48 63 c1             	movslq %ecx,%rax
    1cba:	48 69 c0 ab aa aa 2a 	imul   $0x2aaaaaab,%rax,%rax
    1cc1:	48 c1 e8 20          	shr    $0x20,%rax
    1cc5:	48 89 c2             	mov    %rax,%rdx
    1cc8:	89 c8                	mov    %ecx,%eax
    1cca:	c1 f8 1f             	sar    $0x1f,%eax
    1ccd:	29 c2                	sub    %eax,%edx
    1ccf:	89 d0                	mov    %edx,%eax
    1cd1:	01 c0                	add    %eax,%eax
    1cd3:	01 d0                	add    %edx,%eax
    1cd5:	01 c0                	add    %eax,%eax
    1cd7:	29 c1                	sub    %eax,%ecx
    1cd9:	89 ca                	mov    %ecx,%edx
    1cdb:	85 d2                	test   %edx,%edx
    1cdd:	75 0c                	jne    1ceb <transfer+0x146>
    1cdf:	48 8d 3d 0a 25 00 00 	lea    0x250a(%rip),%rdi        # 41f0 <_IO_stdin_used+0x1f0>
    1ce6:	e8 35 f4 ff ff       	callq  1120 <puts@plt>
    1ceb:	8b 45 c8             	mov    -0x38(%rbp),%eax
    1cee:	48 98                	cltq   
    1cf0:	0f b6 44 05 f6       	movzbl -0xa(%rbp,%rax,1),%eax
    1cf5:	0f b6 c0             	movzbl %al,%eax
    1cf8:	89 c6                	mov    %eax,%esi
    1cfa:	48 8d 3d f0 24 00 00 	lea    0x24f0(%rip),%rdi        # 41f1 <_IO_stdin_used+0x1f1>
    1d01:	b8 00 00 00 00       	mov    $0x0,%eax
    1d06:	e8 35 f4 ff ff       	callq  1140 <printf@plt>
    1d0b:	83 45 c8 01          	addl   $0x1,-0x38(%rbp)
    1d0f:	8b 45 c8             	mov    -0x38(%rbp),%eax
    1d12:	83 f8 01             	cmp    $0x1,%eax
    1d15:	76 9d                	jbe    1cb4 <transfer+0x10f>
    1d17:	48 8d 3d d2 24 00 00 	lea    0x24d2(%rip),%rdi        # 41f0 <_IO_stdin_used+0x1f0>
    1d1e:	e8 fd f3 ff ff       	callq  1120 <puts@plt>
    1d23:	8b 45 cc             	mov    -0x34(%rbp),%eax
    1d26:	89 c7                	mov    %eax,%edi
    1d28:	e8 43 f4 ff ff       	callq  1170 <close@plt>
    1d2d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1d31:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1d38:	00 00 
    1d3a:	74 05                	je     1d41 <transfer+0x19c>
    1d3c:	e8 ef f3 ff ff       	callq  1130 <__stack_chk_fail@plt>
    1d41:	c9                   	leaveq 
    1d42:	c3                   	retq   

0000000000001d43 <user_spi_readGRY>:
    1d43:	f3 0f 1e fa          	endbr64 
    1d47:	55                   	push   %rbp
    1d48:	48 89 e5             	mov    %rsp,%rbp
    1d4b:	48 83 ec 70          	sub    $0x70,%rsp
    1d4f:	89 f9                	mov    %edi,%ecx
    1d51:	48 89 75 90          	mov    %rsi,-0x70(%rbp)
    1d55:	89 d0                	mov    %edx,%eax
    1d57:	89 ca                	mov    %ecx,%edx
    1d59:	88 55 9c             	mov    %dl,-0x64(%rbp)
    1d5c:	66 89 45 98          	mov    %ax,-0x68(%rbp)
    1d60:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1d67:	00 00 
    1d69:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1d6d:	31 c0                	xor    %eax,%eax
    1d6f:	c7 45 b0 ff ff ff ff 	movl   $0xffffffff,-0x50(%rbp)
    1d76:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%rbp)
    1d7d:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    1d84:	00 
    1d85:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    1d8c:	00 
    1d8d:	be 02 00 00 00       	mov    $0x2,%esi
    1d92:	48 8d 3d 9f 22 00 00 	lea    0x229f(%rip),%rdi        # 4038 <_IO_stdin_used+0x38>
    1d99:	b8 00 00 00 00       	mov    $0x0,%eax
    1d9e:	e8 ed f3 ff ff       	callq  1190 <open@plt>
    1da3:	89 45 b4             	mov    %eax,-0x4c(%rbp)
    1da6:	83 7d b4 00          	cmpl   $0x0,-0x4c(%rbp)
    1daa:	79 0c                	jns    1db8 <user_spi_readGRY+0x75>
    1dac:	48 8d 3d 11 24 00 00 	lea    0x2411(%rip),%rdi        # 41c4 <_IO_stdin_used+0x1c4>
    1db3:	e8 68 f3 ff ff       	callq  1120 <puts@plt>
    1db8:	c7 45 ac 03 00 00 00 	movl   $0x3,-0x54(%rbp)
    1dbf:	48 8d 55 ac          	lea    -0x54(%rbp),%rdx
    1dc3:	8b 45 b4             	mov    -0x4c(%rbp),%eax
    1dc6:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    1dcb:	89 c7                	mov    %eax,%edi
    1dcd:	b8 00 00 00 00       	mov    $0x0,%eax
    1dd2:	e8 89 f3 ff ff       	callq  1160 <ioctl@plt>
    1dd7:	89 45 b0             	mov    %eax,-0x50(%rbp)
    1dda:	83 7d b0 00          	cmpl   $0x0,-0x50(%rbp)
    1dde:	74 18                	je     1df8 <user_spi_readGRY+0xb5>
    1de0:	48 8d 3d f6 23 00 00 	lea    0x23f6(%rip),%rdi        # 41dd <_IO_stdin_used+0x1dd>
    1de7:	e8 34 f3 ff ff       	callq  1120 <puts@plt>
    1dec:	c7 45 b0 ff ff ff ff 	movl   $0xffffffff,-0x50(%rbp)
    1df3:	e9 38 01 00 00       	jmpq   1f30 <user_spi_readGRY+0x1ed>
    1df8:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
    1dfc:	ba 20 00 00 00       	mov    $0x20,%edx
    1e01:	be 00 00 00 00       	mov    $0x0,%esi
    1e06:	48 89 c7             	mov    %rax,%rdi
    1e09:	e8 42 f3 ff ff       	callq  1150 <memset@plt>
    1e0e:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1e12:	48 89 45 c0          	mov    %rax,-0x40(%rbp)
    1e16:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1e1a:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
    1e1e:	c7 45 d0 02 00 00 00 	movl   $0x2,-0x30(%rbp)
    1e25:	c7 45 d4 60 e3 16 00 	movl   $0x16e360,-0x2c(%rbp)
    1e2c:	c6 45 da 08          	movb   $0x8,-0x26(%rbp)
    1e30:	c6 45 db 01          	movb   $0x1,-0x25(%rbp)
    1e34:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1e38:	88 45 e0             	mov    %al,-0x20(%rbp)
    1e3b:	48 c7 45 b8 00 00 00 	movq   $0x0,-0x48(%rbp)
    1e42:	00 
    1e43:	e9 b4 00 00 00       	jmpq   1efc <user_spi_readGRY+0x1b9>
    1e48:	48 8b 45 b8          	mov    -0x48(%rbp),%rax
    1e4c:	89 c2                	mov    %eax,%edx
    1e4e:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1e52:	01 d0                	add    %edx,%eax
    1e54:	88 45 e0             	mov    %al,-0x20(%rbp)
    1e57:	48 8d 55 c0          	lea    -0x40(%rbp),%rdx
    1e5b:	8b 45 b4             	mov    -0x4c(%rbp),%eax
    1e5e:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    1e63:	89 c7                	mov    %eax,%edi
    1e65:	b8 00 00 00 00       	mov    $0x0,%eax
    1e6a:	e8 f1 f2 ff ff       	callq  1160 <ioctl@plt>
    1e6f:	89 45 b0             	mov    %eax,-0x50(%rbp)
    1e72:	48 8b 55 90          	mov    -0x70(%rbp),%rdx
    1e76:	48 8b 45 b8          	mov    -0x48(%rbp),%rax
    1e7a:	48 01 c2             	add    %rax,%rdx
    1e7d:	0f b6 45 e1          	movzbl -0x1f(%rbp),%eax
    1e81:	88 02                	mov    %al,(%rdx)
    1e83:	0f b6 45 e1          	movzbl -0x1f(%rbp),%eax
    1e87:	0f b6 d0             	movzbl %al,%edx
    1e8a:	48 8b 4d 90          	mov    -0x70(%rbp),%rcx
    1e8e:	48 8b 45 b8          	mov    -0x48(%rbp),%rax
    1e92:	48 01 c8             	add    %rcx,%rax
    1e95:	0f b6 00             	movzbl (%rax),%eax
    1e98:	0f b6 c0             	movzbl %al,%eax
    1e9b:	89 c6                	mov    %eax,%esi
    1e9d:	48 8d 3d 5c 23 00 00 	lea    0x235c(%rip),%rdi        # 4200 <_IO_stdin_used+0x200>
    1ea4:	b8 00 00 00 00       	mov    $0x0,%eax
    1ea9:	e8 92 f2 ff ff       	callq  1140 <printf@plt>
    1eae:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%rbp)
    1eb5:	eb 2c                	jmp    1ee3 <user_spi_readGRY+0x1a0>
    1eb7:	8b 45 ac             	mov    -0x54(%rbp),%eax
    1eba:	48 98                	cltq   
    1ebc:	0f b6 44 05 e0       	movzbl -0x20(%rbp,%rax,1),%eax
    1ec1:	0f b6 d0             	movzbl %al,%edx
    1ec4:	8b 45 ac             	mov    -0x54(%rbp),%eax
    1ec7:	89 c6                	mov    %eax,%esi
    1ec9:	48 8d 3d 4f 23 00 00 	lea    0x234f(%rip),%rdi        # 421f <_IO_stdin_used+0x21f>
    1ed0:	b8 00 00 00 00       	mov    $0x0,%eax
    1ed5:	e8 66 f2 ff ff       	callq  1140 <printf@plt>
    1eda:	8b 45 ac             	mov    -0x54(%rbp),%eax
    1edd:	83 c0 01             	add    $0x1,%eax
    1ee0:	89 45 ac             	mov    %eax,-0x54(%rbp)
    1ee3:	8b 45 ac             	mov    -0x54(%rbp),%eax
    1ee6:	83 f8 03             	cmp    $0x3,%eax
    1ee9:	7e cc                	jle    1eb7 <user_spi_readGRY+0x174>
    1eeb:	48 8d 3d 3d 23 00 00 	lea    0x233d(%rip),%rdi        # 422f <_IO_stdin_used+0x22f>
    1ef2:	e8 29 f2 ff ff       	callq  1120 <puts@plt>
    1ef7:	48 83 45 b8 01       	addq   $0x1,-0x48(%rbp)
    1efc:	0f b7 45 98          	movzwl -0x68(%rbp),%eax
    1f00:	48 39 45 b8          	cmp    %rax,-0x48(%rbp)
    1f04:	0f 82 3e ff ff ff    	jb     1e48 <user_spi_readGRY+0x105>
    1f0a:	8b 55 d0             	mov    -0x30(%rbp),%edx
    1f0d:	8b 45 b0             	mov    -0x50(%rbp),%eax
    1f10:	39 c2                	cmp    %eax,%edx
    1f12:	74 15                	je     1f29 <user_spi_readGRY+0x1e6>
    1f14:	48 8d 3d 16 23 00 00 	lea    0x2316(%rip),%rdi        # 4231 <_IO_stdin_used+0x231>
    1f1b:	e8 00 f2 ff ff       	callq  1120 <puts@plt>
    1f20:	c7 45 b0 ff ff ff ff 	movl   $0xffffffff,-0x50(%rbp)
    1f27:	eb 07                	jmp    1f30 <user_spi_readGRY+0x1ed>
    1f29:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%rbp)
    1f30:	8b 45 b4             	mov    -0x4c(%rbp),%eax
    1f33:	89 c7                	mov    %eax,%edi
    1f35:	e8 36 f2 ff ff       	callq  1170 <close@plt>
    1f3a:	8b 45 b0             	mov    -0x50(%rbp),%eax
    1f3d:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    1f41:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    1f48:	00 00 
    1f4a:	74 05                	je     1f51 <user_spi_readGRY+0x20e>
    1f4c:	e8 df f1 ff ff       	callq  1130 <__stack_chk_fail@plt>
    1f51:	c9                   	leaveq 
    1f52:	c3                   	retq   

0000000000001f53 <icm_spi_operation>:
    1f53:	f3 0f 1e fa          	endbr64 
    1f57:	55                   	push   %rbp
    1f58:	48 89 e5             	mov    %rsp,%rbp
    1f5b:	48 83 ec 30          	sub    $0x30,%rsp
    1f5f:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1f66:	00 00 
    1f68:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1f6c:	31 c0                	xor    %eax,%eax
    1f6e:	c7 45 dc ac 00 00 00 	movl   $0xac,-0x24(%rbp)
    1f75:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    1f7c:	00 
    1f7d:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    1f84:	00 
    1f85:	bf 01 00 00 00       	mov    $0x1,%edi
    1f8a:	e8 31 f2 ff ff       	callq  11c0 <sleep@plt>
    1f8f:	eb f4                	jmp    1f85 <icm_spi_operation+0x32>

0000000000001f91 <user_spi_read>:
    1f91:	f3 0f 1e fa          	endbr64 
    1f95:	55                   	push   %rbp
    1f96:	48 89 e5             	mov    %rsp,%rbp
    1f99:	48 81 ec d0 00 00 00 	sub    $0xd0,%rsp
    1fa0:	89 f9                	mov    %edi,%ecx
    1fa2:	48 89 b5 30 ff ff ff 	mov    %rsi,-0xd0(%rbp)
    1fa9:	89 d0                	mov    %edx,%eax
    1fab:	89 ca                	mov    %ecx,%edx
    1fad:	88 95 3c ff ff ff    	mov    %dl,-0xc4(%rbp)
    1fb3:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%rbp)
    1fba:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1fc1:	00 00 
    1fc3:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1fc7:	31 c0                	xor    %eax,%eax
    1fc9:	c7 85 4c ff ff ff 00 	movl   $0x0,-0xb4(%rbp)
    1fd0:	00 00 00 
    1fd3:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%rbp)
    1fda:	00 00 00 
    1fdd:	c7 85 54 ff ff ff 00 	movl   $0x0,-0xac(%rbp)
    1fe4:	00 00 00 
    1fe7:	c7 85 48 ff ff ff 00 	movl   $0x0,-0xb8(%rbp)
    1fee:	00 00 00 
    1ff1:	c7 85 60 ff ff ff ff 	movl   $0xffffffff,-0xa0(%rbp)
    1ff8:	ff ff ff 
    1ffb:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
    2002:	00 
    2003:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
    200a:	00 
    200b:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    2012:	00 
    2013:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    201a:	00 
    201b:	c7 85 64 ff ff ff 06 	movl   $0x6,-0x9c(%rbp)
    2022:	00 00 00 
    2025:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%rbp)
    202c:	00 00 00 
    202f:	c7 85 6c ff ff ff 01 	movl   $0x1,-0x94(%rbp)
    2036:	00 00 00 
    2039:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%rbp)
    2040:	00 00 00 
    2043:	c7 85 74 ff ff ff 01 	movl   $0x1,-0x8c(%rbp)
    204a:	00 00 00 
    204d:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%rbp)
    2054:	00 00 00 
    2057:	c7 85 7c ff ff ff 01 	movl   $0x1,-0x84(%rbp)
    205e:	00 00 00 
    2061:	0f b7 85 38 ff ff ff 	movzwl -0xc8(%rbp),%eax
    2068:	89 85 6c ff ff ff    	mov    %eax,-0x94(%rbp)
    206e:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    2072:	b9 00 00 00 00       	mov    $0x0,%ecx
    2077:	ba 00 00 00 00       	mov    $0x0,%edx
    207c:	48 8d 35 c5 21 00 00 	lea    0x21c5(%rip),%rsi        # 4248 <_IO_stdin_used+0x248>
    2083:	48 89 c7             	mov    %rax,%rdi
    2086:	b8 00 00 00 00       	mov    $0x0,%eax
    208b:	e8 10 f1 ff ff       	callq  11a0 <sprintf@plt>
    2090:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    2094:	be 00 00 00 00       	mov    $0x0,%esi
    2099:	48 89 c7             	mov    %rax,%rdi
    209c:	b8 00 00 00 00       	mov    $0x0,%eax
    20a1:	e8 ea f0 ff ff       	callq  1190 <open@plt>
    20a6:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%rbp)
    20ac:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%rbp)
    20b3:	79 27                	jns    20dc <user_spi_read+0x14b>
    20b5:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    20b9:	48 89 c6             	mov    %rax,%rsi
    20bc:	48 8d 3d 96 21 00 00 	lea    0x2196(%rip),%rdi        # 4259 <_IO_stdin_used+0x259>
    20c3:	b8 00 00 00 00       	mov    $0x0,%eax
    20c8:	e8 73 f0 ff ff       	callq  1140 <printf@plt>
    20cd:	c7 85 4c ff ff ff ff 	movl   $0xffffffff,-0xb4(%rbp)
    20d4:	ff ff ff 
    20d7:	e9 b0 03 00 00       	jmpq   248c <user_spi_read+0x4fb>
    20dc:	c7 85 48 ff ff ff 03 	movl   $0x3,-0xb8(%rbp)
    20e3:	00 00 00 
    20e6:	48 8d 95 48 ff ff ff 	lea    -0xb8(%rbp),%rdx
    20ed:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    20f3:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    20f8:	89 c7                	mov    %eax,%edi
    20fa:	b8 00 00 00 00       	mov    $0x0,%eax
    20ff:	e8 5c f0 ff ff       	callq  1160 <ioctl@plt>
    2104:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%rbp)
    210a:	83 bd 4c ff ff ff 00 	cmpl   $0x0,-0xb4(%rbp)
    2111:	74 1b                	je     212e <user_spi_read+0x19d>
    2113:	48 8d 3d c3 20 00 00 	lea    0x20c3(%rip),%rdi        # 41dd <_IO_stdin_used+0x1dd>
    211a:	e8 01 f0 ff ff       	callq  1120 <puts@plt>
    211f:	c7 85 4c ff ff ff ff 	movl   $0xffffffff,-0xb4(%rbp)
    2126:	ff ff ff 
    2129:	e9 51 03 00 00       	jmpq   247f <user_spi_read+0x4ee>
    212e:	48 8d 45 80          	lea    -0x80(%rbp),%rax
    2132:	ba 20 00 00 00       	mov    $0x20,%edx
    2137:	be 00 00 00 00       	mov    $0x0,%esi
    213c:	48 89 c7             	mov    %rax,%rdi
    213f:	e8 0c f0 ff ff       	callq  1150 <memset@plt>
    2144:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2148:	48 89 45 80          	mov    %rax,-0x80(%rbp)
    214c:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2150:	48 89 45 88          	mov    %rax,-0x78(%rbp)
    2154:	8b 95 70 ff ff ff    	mov    -0x90(%rbp),%edx
    215a:	8b 85 74 ff ff ff    	mov    -0x8c(%rbp),%eax
    2160:	01 d0                	add    %edx,%eax
    2162:	89 45 90             	mov    %eax,-0x70(%rbp)
    2165:	c7 45 94 40 4b 4c 00 	movl   $0x4c4b40,-0x6c(%rbp)
    216c:	c6 45 9a 08          	movb   $0x8,-0x66(%rbp)
    2170:	c6 45 9b 01          	movb   $0x1,-0x65(%rbp)
    2174:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2178:	ba 20 00 00 00       	mov    $0x20,%edx
    217d:	be 00 00 00 00       	mov    $0x0,%esi
    2182:	48 89 c7             	mov    %rax,%rdi
    2185:	e8 c6 ef ff ff       	callq  1150 <memset@plt>
    218a:	48 8d 45 aa          	lea    -0x56(%rbp),%rax
    218e:	ba 06 00 00 00       	mov    $0x6,%edx
    2193:	be 00 00 00 00       	mov    $0x0,%esi
    2198:	48 89 c7             	mov    %rax,%rdi
    219b:	e8 b0 ef ff ff       	callq  1150 <memset@plt>
    21a0:	0f b6 85 3c ff ff ff 	movzbl -0xc4(%rbp),%eax
    21a7:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%rbp)
    21ad:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%rbp)
    21b4:	00 00 00 
    21b7:	e9 60 02 00 00       	jmpq   241c <user_spi_read+0x48b>
    21bc:	c7 85 54 ff ff ff 00 	movl   $0x0,-0xac(%rbp)
    21c3:	00 00 00 
    21c6:	83 bd 70 ff ff ff 01 	cmpl   $0x1,-0x90(%rbp)
    21cd:	75 20                	jne    21ef <user_spi_read+0x25e>
    21cf:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    21d3:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    21d9:	48 98                	cltq   
    21db:	48 01 d0             	add    %rdx,%rax
    21de:	8b 95 58 ff ff ff    	mov    -0xa8(%rbp),%edx
    21e4:	88 10                	mov    %dl,(%rax)
    21e6:	83 85 54 ff ff ff 01 	addl   $0x1,-0xac(%rbp)
    21ed:	eb 62                	jmp    2251 <user_spi_read+0x2c0>
    21ef:	83 bd 78 ff ff ff 00 	cmpl   $0x0,-0x88(%rbp)
    21f6:	74 1a                	je     2212 <user_spi_read+0x281>
    21f8:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    21fc:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    2202:	48 98                	cltq   
    2204:	48 01 d0             	add    %rdx,%rax
    2207:	8b 95 58 ff ff ff    	mov    -0xa8(%rbp),%edx
    220d:	66 89 10             	mov    %dx,(%rax)
    2210:	eb 38                	jmp    224a <user_spi_read+0x2b9>
    2212:	8b 85 58 ff ff ff    	mov    -0xa8(%rbp),%eax
    2218:	c1 e8 08             	shr    $0x8,%eax
    221b:	89 c1                	mov    %eax,%ecx
    221d:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    2221:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    2227:	48 98                	cltq   
    2229:	48 01 d0             	add    %rdx,%rax
    222c:	89 ca                	mov    %ecx,%edx
    222e:	88 10                	mov    %dl,(%rax)
    2230:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    2236:	83 c0 01             	add    $0x1,%eax
    2239:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    223d:	48 98                	cltq   
    223f:	48 01 d0             	add    %rdx,%rax
    2242:	8b 95 58 ff ff ff    	mov    -0xa8(%rbp),%edx
    2248:	88 10                	mov    %dl,(%rax)
    224a:	83 85 54 ff ff ff 02 	addl   $0x2,-0xac(%rbp)
    2251:	83 bd 74 ff ff ff 01 	cmpl   $0x1,-0x8c(%rbp)
    2258:	75 14                	jne    226e <user_spi_read+0x2dd>
    225a:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    225e:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    2264:	48 98                	cltq   
    2266:	48 01 d0             	add    %rdx,%rax
    2269:	c6 00 00             	movb   $0x0,(%rax)
    226c:	eb 14                	jmp    2282 <user_spi_read+0x2f1>
    226e:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    2272:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    2278:	48 98                	cltq   
    227a:	48 01 d0             	add    %rdx,%rax
    227d:	66 c7 00 00 00       	movw   $0x0,(%rax)
    2282:	48 8d 55 80          	lea    -0x80(%rbp),%rdx
    2286:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    228c:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    2291:	89 c7                	mov    %eax,%edi
    2293:	b8 00 00 00 00       	mov    $0x0,%eax
    2298:	e8 c3 ee ff ff       	callq  1160 <ioctl@plt>
    229d:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%rbp)
    22a3:	8b 45 90             	mov    -0x70(%rbp),%eax
    22a6:	39 85 4c ff ff ff    	cmp    %eax,-0xb4(%rbp)
    22ac:	74 1b                	je     22c9 <user_spi_read+0x338>
    22ae:	48 8d 3d 7c 1f 00 00 	lea    0x1f7c(%rip),%rdi        # 4231 <_IO_stdin_used+0x231>
    22b5:	e8 66 ee ff ff       	callq  1120 <puts@plt>
    22ba:	c7 85 4c ff ff ff ff 	movl   $0xffffffff,-0xb4(%rbp)
    22c1:	ff ff ff 
    22c4:	e9 b6 01 00 00       	jmpq   247f <user_spi_read+0x4ee>
    22c9:	c7 85 4c ff ff ff 00 	movl   $0x0,-0xb4(%rbp)
    22d0:	00 00 00 
    22d3:	83 bd 74 ff ff ff 01 	cmpl   $0x1,-0x8c(%rbp)
    22da:	0f 85 97 00 00 00    	jne    2377 <user_spi_read+0x3e6>
    22e0:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    22e4:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    22ea:	48 98                	cltq   
    22ec:	48 01 d0             	add    %rdx,%rax
    22ef:	0f b6 00             	movzbl (%rax),%eax
    22f2:	0f b6 c0             	movzbl %al,%eax
    22f5:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%rbp)
    22fb:	8b 85 48 ff ff ff    	mov    -0xb8(%rbp),%eax
    2301:	89 c6                	mov    %eax,%esi
    2303:	48 8d 3d 5f 1f 00 00 	lea    0x1f5f(%rip),%rdi        # 4269 <_IO_stdin_used+0x269>
    230a:	b8 00 00 00 00       	mov    $0x0,%eax
    230f:	e8 2c ee ff ff       	callq  1140 <printf@plt>
    2314:	0f b6 45 d5          	movzbl -0x2b(%rbp),%eax
    2318:	0f b6 f0             	movzbl %al,%esi
    231b:	0f b6 45 d4          	movzbl -0x2c(%rbp),%eax
    231f:	44 0f b6 c0          	movzbl %al,%r8d
    2323:	0f b6 45 d3          	movzbl -0x2d(%rbp),%eax
    2327:	0f b6 f8             	movzbl %al,%edi
    232a:	0f b6 45 d2          	movzbl -0x2e(%rbp),%eax
    232e:	0f b6 c8             	movzbl %al,%ecx
    2331:	0f b6 45 d1          	movzbl -0x2f(%rbp),%eax
    2335:	0f b6 d0             	movzbl %al,%edx
    2338:	0f b6 45 d0          	movzbl -0x30(%rbp),%eax
    233c:	0f b6 c0             	movzbl %al,%eax
    233f:	48 83 ec 08          	sub    $0x8,%rsp
    2343:	56                   	push   %rsi
    2344:	45 89 c1             	mov    %r8d,%r9d
    2347:	41 89 f8             	mov    %edi,%r8d
    234a:	89 c6                	mov    %eax,%esi
    234c:	48 8d 3d 2d 1f 00 00 	lea    0x1f2d(%rip),%rdi        # 4280 <_IO_stdin_used+0x280>
    2353:	b8 00 00 00 00       	mov    $0x0,%eax
    2358:	e8 e3 ed ff ff       	callq  1140 <printf@plt>
    235d:	48 83 c4 10          	add    $0x10,%rsp
    2361:	8b 85 48 ff ff ff    	mov    -0xb8(%rbp),%eax
    2367:	89 c2                	mov    %eax,%edx
    2369:	8b 85 50 ff ff ff    	mov    -0xb0(%rbp),%eax
    236f:	48 98                	cltq   
    2371:	88 54 05 aa          	mov    %dl,-0x56(%rbp,%rax,1)
    2375:	eb 6a                	jmp    23e1 <user_spi_read+0x450>
    2377:	83 bd 7c ff ff ff 00 	cmpl   $0x0,-0x84(%rbp)
    237e:	74 1d                	je     239d <user_spi_read+0x40c>
    2380:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    2384:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    238a:	48 98                	cltq   
    238c:	48 01 d0             	add    %rdx,%rax
    238f:	0f b7 00             	movzwl (%rax),%eax
    2392:	0f b7 c0             	movzwl %ax,%eax
    2395:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%rbp)
    239b:	eb 44                	jmp    23e1 <user_spi_read+0x450>
    239d:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    23a1:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    23a7:	48 98                	cltq   
    23a9:	48 01 d0             	add    %rdx,%rax
    23ac:	0f b6 00             	movzbl (%rax),%eax
    23af:	0f b6 c0             	movzbl %al,%eax
    23b2:	c1 e0 08             	shl    $0x8,%eax
    23b5:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%rbp)
    23bb:	8b 85 54 ff ff ff    	mov    -0xac(%rbp),%eax
    23c1:	83 c0 01             	add    $0x1,%eax
    23c4:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    23c8:	48 98                	cltq   
    23ca:	48 01 d0             	add    %rdx,%rax
    23cd:	0f b6 00             	movzbl (%rax),%eax
    23d0:	0f b6 d0             	movzbl %al,%edx
    23d3:	8b 85 48 ff ff ff    	mov    -0xb8(%rbp),%eax
    23d9:	01 d0                	add    %edx,%eax
    23db:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%rbp)
    23e1:	0f b6 55 aa          	movzbl -0x56(%rbp),%edx
    23e5:	48 8b 85 30 ff ff ff 	mov    -0xd0(%rbp),%rax
    23ec:	88 10                	mov    %dl,(%rax)
    23ee:	48 8b 85 30 ff ff ff 	mov    -0xd0(%rbp),%rax
    23f5:	0f b6 00             	movzbl (%rax),%eax
    23f8:	0f b6 c0             	movzbl %al,%eax
    23fb:	89 c6                	mov    %eax,%esi
    23fd:	48 8d 3d ab 1e 00 00 	lea    0x1eab(%rip),%rdi        # 42af <_IO_stdin_used+0x2af>
    2404:	b8 00 00 00 00       	mov    $0x0,%eax
    2409:	e8 32 ed ff ff       	callq  1140 <printf@plt>
    240e:	83 85 58 ff ff ff 01 	addl   $0x1,-0xa8(%rbp)
    2415:	83 85 50 ff ff ff 01 	addl   $0x1,-0xb0(%rbp)
    241c:	0f b6 95 3c ff ff ff 	movzbl -0xc4(%rbp),%edx
    2423:	8b 85 6c ff ff ff    	mov    -0x94(%rbp),%eax
    2429:	01 d0                	add    %edx,%eax
    242b:	39 85 58 ff ff ff    	cmp    %eax,-0xa8(%rbp)
    2431:	0f 82 85 fd ff ff    	jb     21bc <user_spi_read+0x22b>
    2437:	83 bd 50 ff ff ff 02 	cmpl   $0x2,-0xb0(%rbp)
    243e:	7e 3e                	jle    247e <user_spi_read+0x4ed>
    2440:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%rbp)
    2447:	00 00 00 
    244a:	eb 29                	jmp    2475 <user_spi_read+0x4e4>
    244c:	8b 85 5c ff ff ff    	mov    -0xa4(%rbp),%eax
    2452:	48 63 d0             	movslq %eax,%rdx
    2455:	48 8b 85 30 ff ff ff 	mov    -0xd0(%rbp),%rax
    245c:	48 01 c2             	add    %rax,%rdx
    245f:	8b 85 5c ff ff ff    	mov    -0xa4(%rbp),%eax
    2465:	48 98                	cltq   
    2467:	0f b6 44 05 aa       	movzbl -0x56(%rbp,%rax,1),%eax
    246c:	88 02                	mov    %al,(%rdx)
    246e:	83 85 5c ff ff ff 01 	addl   $0x1,-0xa4(%rbp)
    2475:	83 bd 5c ff ff ff 05 	cmpl   $0x5,-0xa4(%rbp)
    247c:	7e ce                	jle    244c <user_spi_read+0x4bb>
    247e:	90                   	nop
    247f:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    2485:	89 c7                	mov    %eax,%edi
    2487:	e8 e4 ec ff ff       	callq  1170 <close@plt>
    248c:	8b 85 4c ff ff ff    	mov    -0xb4(%rbp),%eax
    2492:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    2496:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    249d:	00 00 
    249f:	74 05                	je     24a6 <user_spi_read+0x515>
    24a1:	e8 8a ec ff ff       	callq  1130 <__stack_chk_fail@plt>
    24a6:	c9                   	leaveq 
    24a7:	c3                   	retq   

00000000000024a8 <xag_spi_read_gyroscope>:
    24a8:	f3 0f 1e fa          	endbr64 
    24ac:	55                   	push   %rbp
    24ad:	48 89 e5             	mov    %rsp,%rbp
    24b0:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
    24b7:	89 f9                	mov    %edi,%ecx
    24b9:	48 89 b5 40 ff ff ff 	mov    %rsi,-0xc0(%rbp)
    24c0:	89 d0                	mov    %edx,%eax
    24c2:	89 ca                	mov    %ecx,%edx
    24c4:	88 95 4c ff ff ff    	mov    %dl,-0xb4(%rbp)
    24ca:	66 89 85 48 ff ff ff 	mov    %ax,-0xb8(%rbp)
    24d1:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    24d8:	00 00 
    24da:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    24de:	31 c0                	xor    %eax,%eax
    24e0:	c7 85 60 ff ff ff 00 	movl   $0x0,-0xa0(%rbp)
    24e7:	00 00 00 
    24ea:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%rbp)
    24f1:	00 00 00 
    24f4:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%rbp)
    24fb:	00 00 00 
    24fe:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%rbp)
    2505:	00 00 00 
    2508:	c7 85 70 ff ff ff ff 	movl   $0xffffffff,-0x90(%rbp)
    250f:	ff ff ff 
    2512:	48 c7 45 b0 00 00 00 	movq   $0x0,-0x50(%rbp)
    2519:	00 
    251a:	48 c7 45 b8 00 00 00 	movq   $0x0,-0x48(%rbp)
    2521:	00 
    2522:	48 c7 45 c0 00 00 00 	movq   $0x0,-0x40(%rbp)
    2529:	00 
    252a:	48 c7 45 c8 00 00 00 	movq   $0x0,-0x38(%rbp)
    2531:	00 
    2532:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
    2539:	00 
    253a:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
    2541:	00 
    2542:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    2549:	00 
    254a:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    2551:	00 
    2552:	c7 85 74 ff ff ff 01 	movl   $0x1,-0x8c(%rbp)
    2559:	00 00 00 
    255c:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%rbp)
    2563:	00 00 00 
    2566:	c7 85 7c ff ff ff 01 	movl   $0x1,-0x84(%rbp)
    256d:	00 00 00 
    2570:	c7 45 aa 00 00 00 00 	movl   $0x0,-0x56(%rbp)
    2577:	66 c7 45 ae 00 00    	movw   $0x0,-0x52(%rbp)
    257d:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    2581:	b9 00 00 00 00       	mov    $0x0,%ecx
    2586:	ba 00 00 00 00       	mov    $0x0,%edx
    258b:	48 8d 35 b6 1c 00 00 	lea    0x1cb6(%rip),%rsi        # 4248 <_IO_stdin_used+0x248>
    2592:	48 89 c7             	mov    %rax,%rdi
    2595:	b8 00 00 00 00       	mov    $0x0,%eax
    259a:	e8 01 ec ff ff       	callq  11a0 <sprintf@plt>
    259f:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    25a3:	be 00 00 00 00       	mov    $0x0,%esi
    25a8:	48 89 c7             	mov    %rax,%rdi
    25ab:	b8 00 00 00 00       	mov    $0x0,%eax
    25b0:	e8 db eb ff ff       	callq  1190 <open@plt>
    25b5:	89 85 70 ff ff ff    	mov    %eax,-0x90(%rbp)
    25bb:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%rbp)
    25c2:	79 0c                	jns    25d0 <xag_spi_read_gyroscope+0x128>
    25c4:	48 8d 3d f8 1c 00 00 	lea    0x1cf8(%rip),%rdi        # 42c3 <_IO_stdin_used+0x2c3>
    25cb:	e8 a3 f5 ff ff       	callq  1b73 <__do_abnormal>
    25d0:	c7 85 5c ff ff ff 03 	movl   $0x3,-0xa4(%rbp)
    25d7:	00 00 00 
    25da:	48 8d 95 5c ff ff ff 	lea    -0xa4(%rbp),%rdx
    25e1:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    25e7:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    25ec:	89 c7                	mov    %eax,%edi
    25ee:	b8 00 00 00 00       	mov    $0x0,%eax
    25f3:	e8 68 eb ff ff       	callq  1160 <ioctl@plt>
    25f8:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%rbp)
    25fe:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%rbp)
    2605:	74 0c                	je     2613 <xag_spi_read_gyroscope+0x16b>
    2607:	48 8d 3d 4b 1a 00 00 	lea    0x1a4b(%rip),%rdi        # 4059 <_IO_stdin_used+0x59>
    260e:	e8 60 f5 ff ff       	callq  1b73 <__do_abnormal>
    2613:	48 8d 45 80          	lea    -0x80(%rbp),%rax
    2617:	ba 20 00 00 00       	mov    $0x20,%edx
    261c:	be 00 00 00 00       	mov    $0x0,%esi
    2621:	48 89 c7             	mov    %rax,%rdi
    2624:	e8 27 eb ff ff       	callq  1150 <memset@plt>
    2629:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    262d:	48 89 45 80          	mov    %rax,-0x80(%rbp)
    2631:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2635:	48 89 45 88          	mov    %rax,-0x78(%rbp)
    2639:	8b 95 78 ff ff ff    	mov    -0x88(%rbp),%edx
    263f:	8b 85 7c ff ff ff    	mov    -0x84(%rbp),%eax
    2645:	01 d0                	add    %edx,%eax
    2647:	89 45 90             	mov    %eax,-0x70(%rbp)
    264a:	c7 45 94 40 4b 4c 00 	movl   $0x4c4b40,-0x6c(%rbp)
    2651:	c6 45 9a 08          	movb   $0x8,-0x66(%rbp)
    2655:	c6 45 9b 01          	movb   $0x1,-0x65(%rbp)
    2659:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    265d:	ba 20 00 00 00       	mov    $0x20,%edx
    2662:	be 00 00 00 00       	mov    $0x0,%esi
    2667:	48 89 c7             	mov    %rax,%rdi
    266a:	e8 e1 ea ff ff       	callq  1150 <memset@plt>
    266f:	48 8d 45 aa          	lea    -0x56(%rbp),%rax
    2673:	ba 06 00 00 00       	mov    $0x6,%edx
    2678:	be 00 00 00 00       	mov    $0x0,%esi
    267d:	48 89 c7             	mov    %rax,%rdi
    2680:	e8 cb ea ff ff       	callq  1150 <memset@plt>
    2685:	0f b6 85 4c ff ff ff 	movzbl -0xb4(%rbp),%eax
    268c:	89 85 6c ff ff ff    	mov    %eax,-0x94(%rbp)
    2692:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%rbp)
    2699:	00 00 00 
    269c:	e9 dc 00 00 00       	jmpq   277d <xag_spi_read_gyroscope+0x2d5>
    26a1:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%rbp)
    26a8:	00 00 00 
    26ab:	83 bd 78 ff ff ff 01 	cmpl   $0x1,-0x88(%rbp)
    26b2:	75 25                	jne    26d9 <xag_spi_read_gyroscope+0x231>
    26b4:	8b 85 6c ff ff ff    	mov    -0x94(%rbp),%eax
    26ba:	83 c8 80             	or     $0xffffff80,%eax
    26bd:	89 c1                	mov    %eax,%ecx
    26bf:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    26c3:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    26c9:	48 98                	cltq   
    26cb:	48 01 d0             	add    %rdx,%rax
    26ce:	89 ca                	mov    %ecx,%edx
    26d0:	88 10                	mov    %dl,(%rax)
    26d2:	83 85 68 ff ff ff 01 	addl   $0x1,-0x98(%rbp)
    26d9:	83 bd 7c ff ff ff 01 	cmpl   $0x1,-0x84(%rbp)
    26e0:	75 12                	jne    26f4 <xag_spi_read_gyroscope+0x24c>
    26e2:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    26e6:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    26ec:	48 98                	cltq   
    26ee:	48 01 d0             	add    %rdx,%rax
    26f1:	c6 00 00             	movb   $0x0,(%rax)
    26f4:	48 8d 55 80          	lea    -0x80(%rbp),%rdx
    26f8:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    26fe:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    2703:	89 c7                	mov    %eax,%edi
    2705:	b8 00 00 00 00       	mov    $0x0,%eax
    270a:	e8 51 ea ff ff       	callq  1160 <ioctl@plt>
    270f:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%rbp)
    2715:	8b 55 90             	mov    -0x70(%rbp),%edx
    2718:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    271e:	39 c2                	cmp    %eax,%edx
    2720:	74 18                	je     273a <xag_spi_read_gyroscope+0x292>
    2722:	48 8d 3d 08 1b 00 00 	lea    0x1b08(%rip),%rdi        # 4231 <_IO_stdin_used+0x231>
    2729:	e8 f2 e9 ff ff       	callq  1120 <puts@plt>
    272e:	c7 85 60 ff ff ff ff 	movl   $0xffffffff,-0xa0(%rbp)
    2735:	ff ff ff 
    2738:	eb 60                	jmp    279a <xag_spi_read_gyroscope+0x2f2>
    273a:	83 bd 7c ff ff ff 01 	cmpl   $0x1,-0x84(%rbp)
    2741:	75 2c                	jne    276f <xag_spi_read_gyroscope+0x2c7>
    2743:	8b 85 64 ff ff ff    	mov    -0x9c(%rbp),%eax
    2749:	48 63 d0             	movslq %eax,%rdx
    274c:	48 8b 85 40 ff ff ff 	mov    -0xc0(%rbp),%rax
    2753:	48 01 c2             	add    %rax,%rdx
    2756:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    275c:	48 98                	cltq   
    275e:	0f b6 44 05 d0       	movzbl -0x30(%rbp,%rax,1),%eax
    2763:	88 02                	mov    %al,(%rdx)
    2765:	c7 85 60 ff ff ff 00 	movl   $0x0,-0xa0(%rbp)
    276c:	00 00 00 
    276f:	83 85 6c ff ff ff 01 	addl   $0x1,-0x94(%rbp)
    2776:	83 85 64 ff ff ff 01 	addl   $0x1,-0x9c(%rbp)
    277d:	0f b6 95 4c ff ff ff 	movzbl -0xb4(%rbp),%edx
    2784:	0f b7 85 48 ff ff ff 	movzwl -0xb8(%rbp),%eax
    278b:	01 d0                	add    %edx,%eax
    278d:	39 85 6c ff ff ff    	cmp    %eax,-0x94(%rbp)
    2793:	0f 8c 08 ff ff ff    	jl     26a1 <xag_spi_read_gyroscope+0x1f9>
    2799:	90                   	nop
    279a:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    27a0:	89 c7                	mov    %eax,%edi
    27a2:	e8 c9 e9 ff ff       	callq  1170 <close@plt>
    27a7:	f3 0f 1e fa          	endbr64 
    27ab:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    27b1:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    27b5:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    27bc:	00 00 
    27be:	74 05                	je     27c5 <xag_spi_read_gyroscope+0x31d>
    27c0:	e8 6b e9 ff ff       	callq  1130 <__stack_chk_fail@plt>
    27c5:	c9                   	leaveq 
    27c6:	c3                   	retq   

00000000000027c7 <xag_spi_read_accelerometer>:
    27c7:	f3 0f 1e fa          	endbr64 
    27cb:	55                   	push   %rbp
    27cc:	48 89 e5             	mov    %rsp,%rbp
    27cf:	89 f9                	mov    %edi,%ecx
    27d1:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)
    27d5:	89 d0                	mov    %edx,%eax
    27d7:	89 ca                	mov    %ecx,%edx
    27d9:	88 55 fc             	mov    %dl,-0x4(%rbp)
    27dc:	66 89 45 f8          	mov    %ax,-0x8(%rbp)
    27e0:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    27e5:	5d                   	pop    %rbp
    27e6:	c3                   	retq   

00000000000027e7 <xag_user_read_accelerometer>:
    27e7:	f3 0f 1e fa          	endbr64 
    27eb:	55                   	push   %rbp
    27ec:	48 89 e5             	mov    %rsp,%rbp
    27ef:	48 83 ec 20          	sub    $0x20,%rsp
    27f3:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    27fa:	00 00 
    27fc:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    2800:	31 c0                	xor    %eax,%eax
    2802:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    2809:	00 
    280a:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    2811:	00 
    2812:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    2816:	ba 01 00 00 00       	mov    $0x1,%edx
    281b:	48 89 c6             	mov    %rax,%rsi
    281e:	bf 80 00 00 00       	mov    $0x80,%edi
    2823:	e8 9f ff ff ff       	callq  27c7 <xag_spi_read_accelerometer>
    2828:	bf 88 13 00 00       	mov    $0x1388,%edi
    282d:	e8 9e e9 ff ff       	callq  11d0 <usleep@plt>
    2832:	eb de                	jmp    2812 <xag_user_read_accelerometer+0x2b>

0000000000002834 <xag_spi_read_gyroscope>:
    2834:	f3 0f 1e fa          	endbr64 
    2838:	55                   	push   %rbp
    2839:	48 89 e5             	mov    %rsp,%rbp
    283c:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
    2843:	89 f9                	mov    %edi,%ecx
    2845:	48 89 b5 40 ff ff ff 	mov    %rsi,-0xc0(%rbp)
    284c:	89 d0                	mov    %edx,%eax
    284e:	89 ca                	mov    %ecx,%edx
    2850:	88 95 4c ff ff ff    	mov    %dl,-0xb4(%rbp)
    2856:	66 89 85 48 ff ff ff 	mov    %ax,-0xb8(%rbp)
    285d:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    2864:	00 00 
    2866:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    286a:	31 c0                	xor    %eax,%eax
    286c:	c7 85 60 ff ff ff 00 	movl   $0x0,-0xa0(%rbp)
    2873:	00 00 00 
    2876:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%rbp)
    287d:	00 00 00 
    2880:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%rbp)
    2887:	00 00 00 
    288a:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%rbp)
    2891:	00 00 00 
    2894:	c7 85 70 ff ff ff ff 	movl   $0xffffffff,-0x90(%rbp)
    289b:	ff ff ff 
    289e:	48 c7 45 b0 00 00 00 	movq   $0x0,-0x50(%rbp)
    28a5:	00 
    28a6:	48 c7 45 b8 00 00 00 	movq   $0x0,-0x48(%rbp)
    28ad:	00 
    28ae:	48 c7 45 c0 00 00 00 	movq   $0x0,-0x40(%rbp)
    28b5:	00 
    28b6:	48 c7 45 c8 00 00 00 	movq   $0x0,-0x38(%rbp)
    28bd:	00 
    28be:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
    28c5:	00 
    28c6:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
    28cd:	00 
    28ce:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    28d5:	00 
    28d6:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    28dd:	00 
    28de:	c7 85 74 ff ff ff 01 	movl   $0x1,-0x8c(%rbp)
    28e5:	00 00 00 
    28e8:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%rbp)
    28ef:	00 00 00 
    28f2:	c7 85 7c ff ff ff 01 	movl   $0x1,-0x84(%rbp)
    28f9:	00 00 00 
    28fc:	c7 45 aa 00 00 00 00 	movl   $0x0,-0x56(%rbp)
    2903:	66 c7 45 ae 00 00    	movw   $0x0,-0x52(%rbp)
    2909:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    290d:	b9 00 00 00 00       	mov    $0x0,%ecx
    2912:	ba 00 00 00 00       	mov    $0x0,%edx
    2917:	48 8d 35 ba 19 00 00 	lea    0x19ba(%rip),%rsi        # 42d8 <_IO_stdin_used+0x2d8>
    291e:	48 89 c7             	mov    %rax,%rdi
    2921:	b8 00 00 00 00       	mov    $0x0,%eax
    2926:	e8 75 e8 ff ff       	callq  11a0 <sprintf@plt>
    292b:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    292f:	be 00 00 00 00       	mov    $0x0,%esi
    2934:	48 89 c7             	mov    %rax,%rdi
    2937:	b8 00 00 00 00       	mov    $0x0,%eax
    293c:	e8 4f e8 ff ff       	callq  1190 <open@plt>
    2941:	89 85 70 ff ff ff    	mov    %eax,-0x90(%rbp)
    2947:	83 bd 70 ff ff ff 00 	cmpl   $0x0,-0x90(%rbp)
    294e:	79 0c                	jns    295c <xag_spi_read_gyroscope+0x128>
    2950:	48 8d 3d 99 19 00 00 	lea    0x1999(%rip),%rdi        # 42f0 <_IO_stdin_used+0x2f0>
    2957:	e8 17 f2 ff ff       	callq  1b73 <__do_abnormal>
    295c:	c7 85 5c ff ff ff 03 	movl   $0x3,-0xa4(%rbp)
    2963:	00 00 00 
    2966:	48 8d 95 5c ff ff ff 	lea    -0xa4(%rbp),%rdx
    296d:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    2973:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    2978:	89 c7                	mov    %eax,%edi
    297a:	b8 00 00 00 00       	mov    $0x0,%eax
    297f:	e8 dc e7 ff ff       	callq  1160 <ioctl@plt>
    2984:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%rbp)
    298a:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%rbp)
    2991:	74 0c                	je     299f <xag_spi_read_gyroscope+0x16b>
    2993:	48 8d 3d 7b 19 00 00 	lea    0x197b(%rip),%rdi        # 4315 <_IO_stdin_used+0x315>
    299a:	e8 d4 f1 ff ff       	callq  1b73 <__do_abnormal>
    299f:	48 8d 45 80          	lea    -0x80(%rbp),%rax
    29a3:	ba 20 00 00 00       	mov    $0x20,%edx
    29a8:	be 00 00 00 00       	mov    $0x0,%esi
    29ad:	48 89 c7             	mov    %rax,%rdi
    29b0:	e8 9b e7 ff ff       	callq  1150 <memset@plt>
    29b5:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    29b9:	48 89 45 80          	mov    %rax,-0x80(%rbp)
    29bd:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    29c1:	48 89 45 88          	mov    %rax,-0x78(%rbp)
    29c5:	8b 95 78 ff ff ff    	mov    -0x88(%rbp),%edx
    29cb:	8b 85 7c ff ff ff    	mov    -0x84(%rbp),%eax
    29d1:	01 d0                	add    %edx,%eax
    29d3:	89 45 90             	mov    %eax,-0x70(%rbp)
    29d6:	c7 45 94 40 4b 4c 00 	movl   $0x4c4b40,-0x6c(%rbp)
    29dd:	c6 45 9a 08          	movb   $0x8,-0x66(%rbp)
    29e1:	c6 45 9b 01          	movb   $0x1,-0x65(%rbp)
    29e5:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    29e9:	ba 20 00 00 00       	mov    $0x20,%edx
    29ee:	be 00 00 00 00       	mov    $0x0,%esi
    29f3:	48 89 c7             	mov    %rax,%rdi
    29f6:	e8 55 e7 ff ff       	callq  1150 <memset@plt>
    29fb:	48 8d 45 aa          	lea    -0x56(%rbp),%rax
    29ff:	ba 06 00 00 00       	mov    $0x6,%edx
    2a04:	be 00 00 00 00       	mov    $0x0,%esi
    2a09:	48 89 c7             	mov    %rax,%rdi
    2a0c:	e8 3f e7 ff ff       	callq  1150 <memset@plt>
    2a11:	0f b6 85 4c ff ff ff 	movzbl -0xb4(%rbp),%eax
    2a18:	89 85 6c ff ff ff    	mov    %eax,-0x94(%rbp)
    2a1e:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%rbp)
    2a25:	00 00 00 
    2a28:	e9 dc 00 00 00       	jmpq   2b09 <xag_spi_read_gyroscope+0x2d5>
    2a2d:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%rbp)
    2a34:	00 00 00 
    2a37:	83 bd 78 ff ff ff 01 	cmpl   $0x1,-0x88(%rbp)
    2a3e:	75 25                	jne    2a65 <xag_spi_read_gyroscope+0x231>
    2a40:	8b 85 6c ff ff ff    	mov    -0x94(%rbp),%eax
    2a46:	83 c8 80             	or     $0xffffff80,%eax
    2a49:	89 c1                	mov    %eax,%ecx
    2a4b:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    2a4f:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    2a55:	48 98                	cltq   
    2a57:	48 01 d0             	add    %rdx,%rax
    2a5a:	89 ca                	mov    %ecx,%edx
    2a5c:	88 10                	mov    %dl,(%rax)
    2a5e:	83 85 68 ff ff ff 01 	addl   $0x1,-0x98(%rbp)
    2a65:	83 bd 7c ff ff ff 01 	cmpl   $0x1,-0x84(%rbp)
    2a6c:	75 12                	jne    2a80 <xag_spi_read_gyroscope+0x24c>
    2a6e:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    2a72:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    2a78:	48 98                	cltq   
    2a7a:	48 01 d0             	add    %rdx,%rax
    2a7d:	c6 00 00             	movb   $0x0,(%rax)
    2a80:	48 8d 55 80          	lea    -0x80(%rbp),%rdx
    2a84:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    2a8a:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    2a8f:	89 c7                	mov    %eax,%edi
    2a91:	b8 00 00 00 00       	mov    $0x0,%eax
    2a96:	e8 c5 e6 ff ff       	callq  1160 <ioctl@plt>
    2a9b:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%rbp)
    2aa1:	8b 55 90             	mov    -0x70(%rbp),%edx
    2aa4:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    2aaa:	39 c2                	cmp    %eax,%edx
    2aac:	74 18                	je     2ac6 <xag_spi_read_gyroscope+0x292>
    2aae:	48 8d 3d 74 18 00 00 	lea    0x1874(%rip),%rdi        # 4329 <_IO_stdin_used+0x329>
    2ab5:	e8 66 e6 ff ff       	callq  1120 <puts@plt>
    2aba:	c7 85 60 ff ff ff ff 	movl   $0xffffffff,-0xa0(%rbp)
    2ac1:	ff ff ff 
    2ac4:	eb 60                	jmp    2b26 <xag_spi_read_gyroscope+0x2f2>
    2ac6:	83 bd 7c ff ff ff 01 	cmpl   $0x1,-0x84(%rbp)
    2acd:	75 2c                	jne    2afb <xag_spi_read_gyroscope+0x2c7>
    2acf:	8b 85 64 ff ff ff    	mov    -0x9c(%rbp),%eax
    2ad5:	48 63 d0             	movslq %eax,%rdx
    2ad8:	48 8b 85 40 ff ff ff 	mov    -0xc0(%rbp),%rax
    2adf:	48 01 c2             	add    %rax,%rdx
    2ae2:	8b 85 68 ff ff ff    	mov    -0x98(%rbp),%eax
    2ae8:	48 98                	cltq   
    2aea:	0f b6 44 05 d0       	movzbl -0x30(%rbp,%rax,1),%eax
    2aef:	88 02                	mov    %al,(%rdx)
    2af1:	c7 85 60 ff ff ff 00 	movl   $0x0,-0xa0(%rbp)
    2af8:	00 00 00 
    2afb:	83 85 6c ff ff ff 01 	addl   $0x1,-0x94(%rbp)
    2b02:	83 85 64 ff ff ff 01 	addl   $0x1,-0x9c(%rbp)
    2b09:	0f b6 95 4c ff ff ff 	movzbl -0xb4(%rbp),%edx
    2b10:	0f b7 85 48 ff ff ff 	movzwl -0xb8(%rbp),%eax
    2b17:	01 d0                	add    %edx,%eax
    2b19:	39 85 6c ff ff ff    	cmp    %eax,-0x94(%rbp)
    2b1f:	0f 8c 08 ff ff ff    	jl     2a2d <xag_spi_read_gyroscope+0x1f9>
    2b25:	90                   	nop
    2b26:	8b 85 70 ff ff ff    	mov    -0x90(%rbp),%eax
    2b2c:	89 c7                	mov    %eax,%edi
    2b2e:	e8 3d e6 ff ff       	callq  1170 <close@plt>
    2b33:	f3 0f 1e fa          	endbr64 
    2b37:	8b 85 60 ff ff ff    	mov    -0xa0(%rbp),%eax
    2b3d:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    2b41:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    2b48:	00 00 
    2b4a:	74 05                	je     2b51 <xag_spi_read_gyroscope+0x31d>
    2b4c:	e8 df e5 ff ff       	callq  1130 <__stack_chk_fail@plt>
    2b51:	c9                   	leaveq 
    2b52:	c3                   	retq   

0000000000002b53 <xag_spi_write_gyroscope>:
    2b53:	f3 0f 1e fa          	endbr64 
    2b57:	55                   	push   %rbp
    2b58:	48 89 e5             	mov    %rsp,%rbp
    2b5b:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
    2b62:	89 f9                	mov    %edi,%ecx
    2b64:	48 89 b5 70 ff ff ff 	mov    %rsi,-0x90(%rbp)
    2b6b:	89 d0                	mov    %edx,%eax
    2b6d:	89 ca                	mov    %ecx,%edx
    2b6f:	88 95 7c ff ff ff    	mov    %dl,-0x84(%rbp)
    2b75:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%rbp)
    2b7c:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    2b83:	00 00 
    2b85:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    2b89:	31 c0                	xor    %eax,%eax
    2b8b:	c7 45 84 00 00 00 00 	movl   $0x0,-0x7c(%rbp)
    2b92:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%rbp)
    2b99:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%rbp)
    2ba0:	c7 45 8c ff ff ff ff 	movl   $0xffffffff,-0x74(%rbp)
    2ba7:	48 c7 45 c0 00 00 00 	movq   $0x0,-0x40(%rbp)
    2bae:	00 
    2baf:	48 c7 45 c8 00 00 00 	movq   $0x0,-0x38(%rbp)
    2bb6:	00 
    2bb7:	c7 45 90 01 00 00 00 	movl   $0x1,-0x70(%rbp)
    2bbe:	c7 45 94 01 00 00 00 	movl   $0x1,-0x6c(%rbp)
    2bc5:	c7 45 98 01 00 00 00 	movl   $0x1,-0x68(%rbp)
    2bcc:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%rbp)
    2bd3:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2bd7:	b9 00 00 00 00       	mov    $0x0,%ecx
    2bdc:	ba 00 00 00 00       	mov    $0x0,%edx
    2be1:	48 8d 35 f0 16 00 00 	lea    0x16f0(%rip),%rsi        # 42d8 <_IO_stdin_used+0x2d8>
    2be8:	48 89 c7             	mov    %rax,%rdi
    2beb:	b8 00 00 00 00       	mov    $0x0,%eax
    2bf0:	e8 ab e5 ff ff       	callq  11a0 <sprintf@plt>
    2bf5:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    2bf9:	be 00 00 00 00       	mov    $0x0,%esi
    2bfe:	48 89 c7             	mov    %rax,%rdi
    2c01:	b8 00 00 00 00       	mov    $0x0,%eax
    2c06:	e8 85 e5 ff ff       	callq  1190 <open@plt>
    2c0b:	89 45 8c             	mov    %eax,-0x74(%rbp)
    2c0e:	83 7d 8c 00          	cmpl   $0x0,-0x74(%rbp)
    2c12:	79 0c                	jns    2c20 <xag_spi_write_gyroscope+0xcd>
    2c14:	48 8d 3d 25 17 00 00 	lea    0x1725(%rip),%rdi        # 4340 <_IO_stdin_used+0x340>
    2c1b:	e8 53 ef ff ff       	callq  1b73 <__do_abnormal>
    2c20:	c7 45 80 03 00 00 00 	movl   $0x3,-0x80(%rbp)
    2c27:	48 8d 55 80          	lea    -0x80(%rbp),%rdx
    2c2b:	8b 45 8c             	mov    -0x74(%rbp),%eax
    2c2e:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    2c33:	89 c7                	mov    %eax,%edi
    2c35:	b8 00 00 00 00       	mov    $0x0,%eax
    2c3a:	e8 21 e5 ff ff       	callq  1160 <ioctl@plt>
    2c3f:	89 45 84             	mov    %eax,-0x7c(%rbp)
    2c42:	83 7d 84 00          	cmpl   $0x0,-0x7c(%rbp)
    2c46:	74 0c                	je     2c54 <xag_spi_write_gyroscope+0x101>
    2c48:	48 8d 3d 17 17 00 00 	lea    0x1717(%rip),%rdi        # 4366 <_IO_stdin_used+0x366>
    2c4f:	e8 1f ef ff ff       	callq  1b73 <__do_abnormal>
    2c54:	48 8d 45 a0          	lea    -0x60(%rbp),%rax
    2c58:	ba 20 00 00 00       	mov    $0x20,%edx
    2c5d:	be 00 00 00 00       	mov    $0x0,%esi
    2c62:	48 89 c7             	mov    %rax,%rdi
    2c65:	e8 e6 e4 ff ff       	callq  1150 <memset@plt>
    2c6a:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
    2c6e:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
    2c72:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
    2c76:	48 89 45 a8          	mov    %rax,-0x58(%rbp)
    2c7a:	8b 55 90             	mov    -0x70(%rbp),%edx
    2c7d:	8b 45 94             	mov    -0x6c(%rbp),%eax
    2c80:	01 d0                	add    %edx,%eax
    2c82:	89 45 b0             	mov    %eax,-0x50(%rbp)
    2c85:	c7 45 b4 40 4b 4c 00 	movl   $0x4c4b40,-0x4c(%rbp)
    2c8c:	c6 45 ba 08          	movb   $0x8,-0x46(%rbp)
    2c90:	c6 45 bb 01          	movb   $0x1,-0x45(%rbp)
    2c94:	bf d0 07 00 00       	mov    $0x7d0,%edi
    2c99:	e8 32 e5 ff ff       	callq  11d0 <usleep@plt>
    2c9e:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
    2ca2:	ba 10 00 00 00       	mov    $0x10,%edx
    2ca7:	be 00 00 00 00       	mov    $0x0,%esi
    2cac:	48 89 c7             	mov    %rax,%rdi
    2caf:	e8 9c e4 ff ff       	callq  1150 <memset@plt>
    2cb4:	83 7d 90 01          	cmpl   $0x1,-0x70(%rbp)
    2cb8:	75 19                	jne    2cd3 <xag_spi_write_gyroscope+0x180>
    2cba:	48 8d 55 c0          	lea    -0x40(%rbp),%rdx
    2cbe:	8b 45 88             	mov    -0x78(%rbp),%eax
    2cc1:	48 98                	cltq   
    2cc3:	48 01 c2             	add    %rax,%rdx
    2cc6:	0f b6 85 7c ff ff ff 	movzbl -0x84(%rbp),%eax
    2ccd:	88 02                	mov    %al,(%rdx)
    2ccf:	83 45 88 01          	addl   $0x1,-0x78(%rbp)
    2cd3:	83 7d 94 01          	cmpl   $0x1,-0x6c(%rbp)
    2cd7:	75 13                	jne    2cec <xag_spi_write_gyroscope+0x199>
    2cd9:	48 8b 85 70 ff ff ff 	mov    -0x90(%rbp),%rax
    2ce0:	0f b6 10             	movzbl (%rax),%edx
    2ce3:	8b 45 88             	mov    -0x78(%rbp),%eax
    2ce6:	48 98                	cltq   
    2ce8:	88 54 05 c0          	mov    %dl,-0x40(%rbp,%rax,1)
    2cec:	48 8d 55 a0          	lea    -0x60(%rbp),%rdx
    2cf0:	8b 45 8c             	mov    -0x74(%rbp),%eax
    2cf3:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    2cf8:	89 c7                	mov    %eax,%edi
    2cfa:	b8 00 00 00 00       	mov    $0x0,%eax
    2cff:	e8 5c e4 ff ff       	callq  1160 <ioctl@plt>
    2d04:	89 45 84             	mov    %eax,-0x7c(%rbp)
    2d07:	8b 55 b0             	mov    -0x50(%rbp),%edx
    2d0a:	8b 45 84             	mov    -0x7c(%rbp),%eax
    2d0d:	39 c2                	cmp    %eax,%edx
    2d0f:	74 15                	je     2d26 <xag_spi_write_gyroscope+0x1d3>
    2d11:	48 8d 3d 11 16 00 00 	lea    0x1611(%rip),%rdi        # 4329 <_IO_stdin_used+0x329>
    2d18:	e8 03 e4 ff ff       	callq  1120 <puts@plt>
    2d1d:	c7 45 84 ff ff ff ff 	movl   $0xffffffff,-0x7c(%rbp)
    2d24:	eb 07                	jmp    2d2d <xag_spi_write_gyroscope+0x1da>
    2d26:	c7 45 84 00 00 00 00 	movl   $0x0,-0x7c(%rbp)
    2d2d:	8b 45 8c             	mov    -0x74(%rbp),%eax
    2d30:	89 c7                	mov    %eax,%edi
    2d32:	e8 39 e4 ff ff       	callq  1170 <close@plt>
    2d37:	f3 0f 1e fa          	endbr64 
    2d3b:	8b 45 84             	mov    -0x7c(%rbp),%eax
    2d3e:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    2d42:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    2d49:	00 00 
    2d4b:	74 05                	je     2d52 <xag_spi_write_gyroscope+0x1ff>
    2d4d:	e8 de e3 ff ff       	callq  1130 <__stack_chk_fail@plt>
    2d52:	c9                   	leaveq 
    2d53:	c3                   	retq   

0000000000002d54 <xag_user_get_gyro_data>:
    2d54:	f3 0f 1e fa          	endbr64 
    2d58:	55                   	push   %rbp
    2d59:	48 89 e5             	mov    %rsp,%rbp
    2d5c:	48 83 ec 40          	sub    $0x40,%rsp
    2d60:	48 89 7d c8          	mov    %rdi,-0x38(%rbp)
    2d64:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    2d6b:	00 00 
    2d6d:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    2d71:	31 c0                	xor    %eax,%eax
    2d73:	c6 45 de 00          	movb   $0x0,-0x22(%rbp)
    2d77:	c7 45 f2 00 00 00 00 	movl   $0x0,-0xe(%rbp)
    2d7e:	66 c7 45 f6 00 00    	movw   $0x0,-0xa(%rbp)
    2d84:	c7 45 e0 ff ff ff ff 	movl   $0xffffffff,-0x20(%rbp)
    2d8b:	c6 45 df 02          	movb   $0x2,-0x21(%rbp)
    2d8f:	0f b6 45 df          	movzbl -0x21(%rbp),%eax
    2d93:	48 8d 4d f2          	lea    -0xe(%rbp),%rcx
    2d97:	ba 06 00 00 00       	mov    $0x6,%edx
    2d9c:	48 89 ce             	mov    %rcx,%rsi
    2d9f:	89 c7                	mov    %eax,%edi
    2da1:	e8 8e fa ff ff       	callq  2834 <xag_spi_read_gyroscope>
    2da6:	0f be c0             	movsbl %al,%eax
    2da9:	89 45 e0             	mov    %eax,-0x20(%rbp)
    2dac:	83 7d e0 00          	cmpl   $0x0,-0x20(%rbp)
    2db0:	0f 85 e6 00 00 00    	jne    2e9c <xag_user_get_gyro_data+0x148>
    2db6:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2dba:	8d 50 01             	lea    0x1(%rax),%edx
    2dbd:	88 55 de             	mov    %dl,-0x22(%rbp)
    2dc0:	0f b6 c0             	movzbl %al,%eax
    2dc3:	48 98                	cltq   
    2dc5:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2dca:	0f b6 c0             	movzbl %al,%eax
    2dcd:	89 45 e4             	mov    %eax,-0x1c(%rbp)
    2dd0:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2dd4:	8d 50 01             	lea    0x1(%rax),%edx
    2dd7:	88 55 de             	mov    %dl,-0x22(%rbp)
    2dda:	0f b6 c0             	movzbl %al,%eax
    2ddd:	48 98                	cltq   
    2ddf:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2de4:	0f b6 c0             	movzbl %al,%eax
    2de7:	89 45 e8             	mov    %eax,-0x18(%rbp)
    2dea:	8b 45 e8             	mov    -0x18(%rbp),%eax
    2ded:	c1 e0 08             	shl    $0x8,%eax
    2df0:	0b 45 e4             	or     -0x1c(%rbp),%eax
    2df3:	89 45 ec             	mov    %eax,-0x14(%rbp)
    2df6:	8b 45 ec             	mov    -0x14(%rbp),%eax
    2df9:	89 c2                	mov    %eax,%edx
    2dfb:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    2dff:	66 89 10             	mov    %dx,(%rax)
    2e02:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2e06:	8d 50 01             	lea    0x1(%rax),%edx
    2e09:	88 55 de             	mov    %dl,-0x22(%rbp)
    2e0c:	0f b6 c0             	movzbl %al,%eax
    2e0f:	48 98                	cltq   
    2e11:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2e16:	0f b6 c0             	movzbl %al,%eax
    2e19:	89 45 e4             	mov    %eax,-0x1c(%rbp)
    2e1c:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2e20:	8d 50 01             	lea    0x1(%rax),%edx
    2e23:	88 55 de             	mov    %dl,-0x22(%rbp)
    2e26:	0f b6 c0             	movzbl %al,%eax
    2e29:	48 98                	cltq   
    2e2b:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2e30:	0f b6 c0             	movzbl %al,%eax
    2e33:	89 45 e8             	mov    %eax,-0x18(%rbp)
    2e36:	8b 45 e8             	mov    -0x18(%rbp),%eax
    2e39:	c1 e0 08             	shl    $0x8,%eax
    2e3c:	0b 45 e4             	or     -0x1c(%rbp),%eax
    2e3f:	89 45 ec             	mov    %eax,-0x14(%rbp)
    2e42:	8b 45 ec             	mov    -0x14(%rbp),%eax
    2e45:	89 c2                	mov    %eax,%edx
    2e47:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    2e4b:	66 89 50 02          	mov    %dx,0x2(%rax)
    2e4f:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2e53:	8d 50 01             	lea    0x1(%rax),%edx
    2e56:	88 55 de             	mov    %dl,-0x22(%rbp)
    2e59:	0f b6 c0             	movzbl %al,%eax
    2e5c:	48 98                	cltq   
    2e5e:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2e63:	0f b6 c0             	movzbl %al,%eax
    2e66:	89 45 e4             	mov    %eax,-0x1c(%rbp)
    2e69:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    2e6d:	8d 50 01             	lea    0x1(%rax),%edx
    2e70:	88 55 de             	mov    %dl,-0x22(%rbp)
    2e73:	0f b6 c0             	movzbl %al,%eax
    2e76:	48 98                	cltq   
    2e78:	0f b6 44 05 f2       	movzbl -0xe(%rbp,%rax,1),%eax
    2e7d:	0f b6 c0             	movzbl %al,%eax
    2e80:	89 45 e8             	mov    %eax,-0x18(%rbp)
    2e83:	8b 45 e8             	mov    -0x18(%rbp),%eax
    2e86:	c1 e0 08             	shl    $0x8,%eax
    2e89:	0b 45 e4             	or     -0x1c(%rbp),%eax
    2e8c:	89 45 ec             	mov    %eax,-0x14(%rbp)
    2e8f:	8b 45 ec             	mov    -0x14(%rbp),%eax
    2e92:	89 c2                	mov    %eax,%edx
    2e94:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    2e98:	66 89 50 04          	mov    %dx,0x4(%rax)
    2e9c:	8b 45 e0             	mov    -0x20(%rbp),%eax
    2e9f:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
    2ea3:	64 48 33 34 25 28 00 	xor    %fs:0x28,%rsi
    2eaa:	00 00 
    2eac:	74 05                	je     2eb3 <xag_user_get_gyro_data+0x15f>
    2eae:	e8 7d e2 ff ff       	callq  1130 <__stack_chk_fail@plt>
    2eb3:	c9                   	leaveq 
    2eb4:	c3                   	retq   

0000000000002eb5 <xag_user_read_gyroscope>:
    2eb5:	f3 0f 1e fa          	endbr64 
    2eb9:	55                   	push   %rbp
    2eba:	48 89 e5             	mov    %rsp,%rbp
    2ebd:	48 83 ec 60          	sub    $0x60,%rsp
    2ec1:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    2ec8:	00 00 
    2eca:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    2ece:	31 c0                	xor    %eax,%eax
    2ed0:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    2ed7:	00 
    2ed8:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    2edf:	00 
    2ee0:	c6 45 a8 00          	movb   $0x0,-0x58(%rbp)
    2ee4:	c6 45 a9 00          	movb   $0x0,-0x57(%rbp)
    2ee8:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2eec:	f2 0f 11 45 b0       	movsd  %xmm0,-0x50(%rbp)
    2ef1:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2ef5:	f2 0f 11 45 b8       	movsd  %xmm0,-0x48(%rbp)
    2efa:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2efe:	f2 0f 11 45 c0       	movsd  %xmm0,-0x40(%rbp)
    2f03:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2f07:	f2 0f 11 45 c8       	movsd  %xmm0,-0x38(%rbp)
    2f0c:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2f10:	f2 0f 11 45 d0       	movsd  %xmm0,-0x30(%rbp)
    2f15:	66 0f ef c0          	pxor   %xmm0,%xmm0
    2f19:	f2 0f 11 45 d8       	movsd  %xmm0,-0x28(%rbp)
    2f1e:	66 c7 45 aa 00 00    	movw   $0x0,-0x56(%rbp)
    2f24:	66 c7 45 ac 00 00    	movw   $0x0,-0x54(%rbp)
    2f2a:	66 c7 45 ae 00 00    	movw   $0x0,-0x52(%rbp)
    2f30:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    2f34:	ba 01 00 00 00       	mov    $0x1,%edx
    2f39:	48 89 c6             	mov    %rax,%rsi
    2f3c:	bf 00 00 00 00       	mov    $0x0,%edi
    2f41:	e8 ee f8 ff ff       	callq  2834 <xag_spi_read_gyroscope>
    2f46:	0f b6 45 e0          	movzbl -0x20(%rbp),%eax
    2f4a:	0f b6 c0             	movzbl %al,%eax
    2f4d:	89 c6                	mov    %eax,%esi
    2f4f:	48 8d 3d 25 14 00 00 	lea    0x1425(%rip),%rdi        # 437b <_IO_stdin_used+0x37b>
    2f56:	b8 00 00 00 00       	mov    $0x0,%eax
    2f5b:	e8 e0 e1 ff ff       	callq  1140 <printf@plt>
    2f60:	c6 45 a8 04          	movb   $0x4,-0x58(%rbp)
    2f64:	48 8d 45 a8          	lea    -0x58(%rbp),%rax
    2f68:	ba 01 00 00 00       	mov    $0x1,%edx
    2f6d:	48 89 c6             	mov    %rax,%rsi
    2f70:	bf 0f 00 00 00       	mov    $0xf,%edi
    2f75:	e8 d9 fb ff ff       	callq  2b53 <xag_spi_write_gyroscope>
    2f7a:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    2f7e:	ba 01 00 00 00       	mov    $0x1,%edx
    2f83:	48 89 c6             	mov    %rax,%rsi
    2f86:	bf 0f 00 00 00       	mov    $0xf,%edi
    2f8b:	e8 a4 f8 ff ff       	callq  2834 <xag_spi_read_gyroscope>
    2f90:	c6 45 a9 04          	movb   $0x4,-0x57(%rbp)
    2f94:	48 8d 45 a9          	lea    -0x57(%rbp),%rax
    2f98:	ba 01 00 00 00       	mov    $0x1,%edx
    2f9d:	48 89 c6             	mov    %rax,%rsi
    2fa0:	bf 10 00 00 00       	mov    $0x10,%edi
    2fa5:	e8 a9 fb ff ff       	callq  2b53 <xag_spi_write_gyroscope>
    2faa:	48 8d 45 aa          	lea    -0x56(%rbp),%rax
    2fae:	48 89 c7             	mov    %rax,%rdi
    2fb1:	e8 9e fd ff ff       	callq  2d54 <xag_user_get_gyro_data>
    2fb6:	84 c0                	test   %al,%al
    2fb8:	0f 85 a2 00 00 00    	jne    3060 <xag_user_read_gyroscope+0x1ab>
    2fbe:	0f b7 45 aa          	movzwl -0x56(%rbp),%eax
    2fc2:	98                   	cwtl   
    2fc3:	f2 0f 2a c0          	cvtsi2sd %eax,%xmm0
    2fc7:	f2 0f 10 0d 41 14 00 	movsd  0x1441(%rip),%xmm1        # 4410 <_IO_stdin_used+0x410>
    2fce:	00 
    2fcf:	f2 0f 5e c1          	divsd  %xmm1,%xmm0
    2fd3:	66 0f 28 c8          	movapd %xmm0,%xmm1
    2fd7:	f2 0f 10 05 39 14 00 	movsd  0x1439(%rip),%xmm0        # 4418 <_IO_stdin_used+0x418>
    2fde:	00 
    2fdf:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
    2fe3:	f2 0f 10 05 35 14 00 	movsd  0x1435(%rip),%xmm0        # 4420 <_IO_stdin_used+0x420>
    2fea:	00 
    2feb:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
    2fef:	f2 0f 11 45 b0       	movsd  %xmm0,-0x50(%rbp)
    2ff4:	0f b7 45 ac          	movzwl -0x54(%rbp),%eax
    2ff8:	98                   	cwtl   
    2ff9:	f2 0f 2a c0          	cvtsi2sd %eax,%xmm0
    2ffd:	f2 0f 10 0d 0b 14 00 	movsd  0x140b(%rip),%xmm1        # 4410 <_IO_stdin_used+0x410>
    3004:	00 
    3005:	f2 0f 5e c1          	divsd  %xmm1,%xmm0
    3009:	66 0f 28 c8          	movapd %xmm0,%xmm1
    300d:	f2 0f 10 05 03 14 00 	movsd  0x1403(%rip),%xmm0        # 4418 <_IO_stdin_used+0x418>
    3014:	00 
    3015:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
    3019:	f2 0f 10 05 ff 13 00 	movsd  0x13ff(%rip),%xmm0        # 4420 <_IO_stdin_used+0x420>
    3020:	00 
    3021:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
    3025:	f2 0f 11 45 b8       	movsd  %xmm0,-0x48(%rbp)
    302a:	0f b7 45 ae          	movzwl -0x52(%rbp),%eax
    302e:	98                   	cwtl   
    302f:	f2 0f 2a c0          	cvtsi2sd %eax,%xmm0
    3033:	f2 0f 10 0d d5 13 00 	movsd  0x13d5(%rip),%xmm1        # 4410 <_IO_stdin_used+0x410>
    303a:	00 
    303b:	f2 0f 5e c1          	divsd  %xmm1,%xmm0
    303f:	66 0f 28 c8          	movapd %xmm0,%xmm1
    3043:	f2 0f 10 05 cd 13 00 	movsd  0x13cd(%rip),%xmm0        # 4418 <_IO_stdin_used+0x418>
    304a:	00 
    304b:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
    304f:	f2 0f 10 05 c9 13 00 	movsd  0x13c9(%rip),%xmm0        # 4420 <_IO_stdin_used+0x420>
    3056:	00 
    3057:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
    305b:	f2 0f 11 45 c0       	movsd  %xmm0,-0x40(%rbp)
    3060:	48 8b 55 b0          	mov    -0x50(%rbp),%rdx
    3064:	0f b7 45 aa          	movzwl -0x56(%rbp),%eax
    3068:	98                   	cwtl   
    3069:	66 48 0f 6e c2       	movq   %rdx,%xmm0
    306e:	89 c6                	mov    %eax,%esi
    3070:	48 8d 3d 21 13 00 00 	lea    0x1321(%rip),%rdi        # 4398 <_IO_stdin_used+0x398>
    3077:	b8 01 00 00 00       	mov    $0x1,%eax
    307c:	e8 bf e0 ff ff       	callq  1140 <printf@plt>
    3081:	48 8b 55 b8          	mov    -0x48(%rbp),%rdx
    3085:	0f b7 45 ac          	movzwl -0x54(%rbp),%eax
    3089:	98                   	cwtl   
    308a:	66 48 0f 6e c2       	movq   %rdx,%xmm0
    308f:	89 c6                	mov    %eax,%esi
    3091:	48 8d 3d 28 13 00 00 	lea    0x1328(%rip),%rdi        # 43c0 <_IO_stdin_used+0x3c0>
    3098:	b8 01 00 00 00       	mov    $0x1,%eax
    309d:	e8 9e e0 ff ff       	callq  1140 <printf@plt>
    30a2:	48 8b 55 c0          	mov    -0x40(%rbp),%rdx
    30a6:	0f b7 45 ae          	movzwl -0x52(%rbp),%eax
    30aa:	98                   	cwtl   
    30ab:	66 48 0f 6e c2       	movq   %rdx,%xmm0
    30b0:	89 c6                	mov    %eax,%esi
    30b2:	48 8d 3d 2f 13 00 00 	lea    0x132f(%rip),%rdi        # 43e8 <_IO_stdin_used+0x3e8>
    30b9:	b8 01 00 00 00       	mov    $0x1,%eax
    30be:	e8 7d e0 ff ff       	callq  1140 <printf@plt>
    30c3:	bf 40 0d 03 00       	mov    $0x30d40,%edi
    30c8:	e8 03 e1 ff ff       	callq  11d0 <usleep@plt>
    30cd:	e9 d8 fe ff ff       	jmpq   2faa <xag_user_read_gyroscope+0xf5>
    30d2:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
    30d9:	00 00 00 
    30dc:	0f 1f 40 00          	nopl   0x0(%rax)

00000000000030e0 <__libc_csu_init>:
    30e0:	f3 0f 1e fa          	endbr64 
    30e4:	41 57                	push   %r15
    30e6:	4c 8d 3d 5b 2c 00 00 	lea    0x2c5b(%rip),%r15        # 5d48 <__frame_dummy_init_array_entry>
    30ed:	41 56                	push   %r14
    30ef:	49 89 d6             	mov    %rdx,%r14
    30f2:	41 55                	push   %r13
    30f4:	49 89 f5             	mov    %rsi,%r13
    30f7:	41 54                	push   %r12
    30f9:	41 89 fc             	mov    %edi,%r12d
    30fc:	55                   	push   %rbp
    30fd:	48 8d 2d 4c 2c 00 00 	lea    0x2c4c(%rip),%rbp        # 5d50 <__do_global_dtors_aux_fini_array_entry>
    3104:	53                   	push   %rbx
    3105:	4c 29 fd             	sub    %r15,%rbp
    3108:	48 83 ec 08          	sub    $0x8,%rsp
    310c:	e8 ef de ff ff       	callq  1000 <_init>
    3111:	48 c1 fd 03          	sar    $0x3,%rbp
    3115:	74 1f                	je     3136 <__libc_csu_init+0x56>
    3117:	31 db                	xor    %ebx,%ebx
    3119:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    3120:	4c 89 f2             	mov    %r14,%rdx
    3123:	4c 89 ee             	mov    %r13,%rsi
    3126:	44 89 e7             	mov    %r12d,%edi
    3129:	41 ff 14 df          	callq  *(%r15,%rbx,8)
    312d:	48 83 c3 01          	add    $0x1,%rbx
    3131:	48 39 dd             	cmp    %rbx,%rbp
    3134:	75 ea                	jne    3120 <__libc_csu_init+0x40>
    3136:	48 83 c4 08          	add    $0x8,%rsp
    313a:	5b                   	pop    %rbx
    313b:	5d                   	pop    %rbp
    313c:	41 5c                	pop    %r12
    313e:	41 5d                	pop    %r13
    3140:	41 5e                	pop    %r14
    3142:	41 5f                	pop    %r15
    3144:	c3                   	retq   
    3145:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
    314c:	00 00 00 00 

0000000000003150 <__libc_csu_fini>:
    3150:	f3 0f 1e fa          	endbr64 
    3154:	c3                   	retq   

Disassembly of section .fini:

0000000000003158 <_fini>:
    3158:	f3 0f 1e fa          	endbr64 
    315c:	48 83 ec 08          	sub    $0x8,%rsp
    3160:	48 83 c4 08          	add    $0x8,%rsp
    3164:	c3                   	retq   
